Dear Anh Chị!
Mình đã viết code VBA gán công thức trong Sheet" Output" ở các cột I & J, code chạy củng đúng yêu cầu của mình, nhưng thấy chập quá, mong Anh/Chị giúp cách tinh gọn để chạy nhanh hơn ạ.
Thanks!
Application.ScreenUpdating = False
'Macro
Application.ScreenUpdating = True
Private Sub CommandButton1_Click()
'vlookup cho sheet output
Dim k As Integer
Application.ScreenUpdating = False
Range("I6:J1000").ClearContents
For k = 6 To 19
If Range("d" & k).Value <> "" Then
Range("i" & k).Formula = "=vlookup(RC[-5],Schedule!R4C3:R1000C5,2,FALSE)"
Range("j" & k).Formula = "=vlookup(RC[-6],Schedule!R4C3:R1000C5,3,FALSE)"
'Else
'Range("i" & k).Value = "" '[COLOR=#ff0000]ko can -> gop chung voi [/COLOR]Range("I6:J1000").ClearContents
'Range("j" & k).Value = "" [COLOR=#ff0000]'ko can -> [/COLOR][COLOR=#FF0000]gop chung voi [/COLOR]Range("I6:J1000").ClearContents
End If
Next k
Application.ScreenUpdating = True
MsgBox " Finished"
End Sub
If Respone = vbOK Then
'xoa dong trong
Range("A6:J6").Select
[COLOR=#ff0000] Range(Selection, Selection.End(xlDown)).Select[/COLOR]
Selection.Copy
For M = 21 To 2000
If Trim(Worksheets("Output").Range("a" & M).Value) = "" Then
Range("a" & M).Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Exit For
End If
Next M
End If
Bạn phucbugis ơi xem giúp file mình đính kèm nhé,
Thanks bạn nhiều.
Bạn phucbugis ơi giúp với, tình hình là mình đã viết xong file chạy củng đúng ý mình, thấy dung lượng khá nhẹ, chỉ khoảng 300k, nhưng đưa lên ổ mang của công ty dùng thì chạy không nổi, load về máy các nhân thì OK.
Xem giúp code của Sheet"Pending" giúp mình với nha.
Sub DELTE_ROW_EMPTY()
'check dong trong cua sheet "scshedule"
On Error GoTo thoat
Range("C4:C" & Range("c1000").End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
thoat: Exit Sub
Range("B1").Select
End Sub
Sub copyschedule()
'copy data_schedule sang sheets pending
With Sheets("Pending")
.Visible = True
.Cells.EntireRow.Hidden = False
.[A6:J6].Resize(.[a10000].End(3).Row).ClearContents
.[a6].Resize(Sheet3.[C10000].End(3).Row, 5) = Sheet3.[c4].Resize(Sheet3.[C10000].End(3).Row, 5)
.[h6].Resize(Sheet3.[j10000].End(3).Row, 8) = Sheet3.[j4].Resize(Sheet3.[J10000].End(3).Row, 8)
End With
End Sub
Bạn phucbugis ơi giúp với, tình hình là mình đã viết xong file chạy củng đúng ý mình, thấy dung lượng khá nhẹ, chỉ khoảng 300k, nhưng đưa lên ổ mang của công ty dùng thì chạy không nổi, load về máy các nhân thì OK.
Xem giúp code của Sheet"Pending" giúp mình với nha.
Private Sub CommandButton1_Click()
'Update sheets "pending"
Application.ScreenUpdating = False
With ActiveSheet.Cells(Rows.Count, "A").End(xlUp)
iRow = .Row
.Offset(-iRow + 6, 5).Resize(iRow - 5).Value = "=SUMIF(Output!R21C4:R1000C5,Pending!RC[-5],Output!R21C5:R1000C5)"
.Offset(-iRow + 6, 6).Resize(iRow - 5).Value = "=RC[-1]-RC[-2]"
End With
Application.ScreenUpdating = True
'Call HiddenRow
MsgBox " Update successfull"
End Sub