Dang Le Khanh Ninh
Thành viên mới
- Tham gia
- 5/6/21
- Bài viết
- 13
- Được thích
- -2
Xin chào cả nhà. Em là thành viên mới. Em mới tập tọe lập trình. Nay em có viết đoạn code để cập nhật dữ liệu. Em sử dụng 2 vòng lặp for lồng nhau. Khi em chạy chương trình mất tận 20 phút lận. Các cao thủ chỉ giáo giúp em với ạ. Chi tiết các bác xem attach file ạ.
Đoạn code của em như sau:
Đoạn code của em như sau:
PHP:
Sub Check_Fabric_Contract()
Dim Row_Order As Variant
Dim Row_Fabric As Variant
Dim i, j As Integer
Dim Fabric_filter As String
Dim PO_filter As String
Dim Row_Copy As Variant
Dim Find_PO As Double
Dim Find_Fabric As Double
Dim Compare_SheetsFabric1 As Variant
Dim Compare_SheetsFabric2 As Variant
Dim Compare_SheetOrder1 As Variant
Dim Compare_SheetOrder2 As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
Application.Calculation = xlCalculationManual
'Compare_format'
Sheets("Fabric contract").Select
Compare_SheetFabric1 = WorksheetFunction.Concat(Sheets("Fabric contract").Range("A1:W1"))
Compare_SheetFabric2 = WorksheetFunction.Concat(Sheets("Fabric contract").Range("A2:W2"))
Sheets("Order list").Select
Compare_SheetOrder1 = WorksheetFunction.Concat(Sheets("Order list").Range("A1:W1"))
Compare_SheetOrder2 = WorksheetFunction.Concat(Sheets("Order list").Range("A2:W2"))
If Compare_SheetFabric1 = Compare_SheetFabric2 And Compare_SheetOrder1 = Compare_SheetOrder2 Then
'Define quantity of Row in Fabric contract'
Sheets("Fabric contract").Select
If AutoFilterMode = True Then AutoFilterMode = False
Sheets("Fabric contract").Range("A3").Select
Sheets("Fabric contract").Range(Selection, Selection.End(xlDown)).Select
Row_Fabric = Selection.Count + 2
'Define quantity of Row in Order list'
Sheets("Order list").Select
If AutoFilterMode = True Then AutoFilterMode = False
Sheets("Order list").Range("C2").Select
Sheets("Order list").Range(Selection, Selection.End(xlDown)).Select
Row_Order = Selection.Count + 1
'Run program'
For i = 1 To Row_Fabric - 3
For j = 1 To Row_Order - 2
Sheets("Fabric contract").Select
Fabric_filter = Sheets("Fabric contract").Range("H" & i + 2).Text
PO_filter = Sheets("Fabric contract").Range("D" & i + 2).Text
Sheets("Order list").Select
If AutoFilterMode = True Then AutoFilterMode = False
Sheets("Order list").Select
Find_Fabric = Application.IfError(Application.Search(Fabric_filter, Sheets("Order list").Range("K" & j + 2).Text, 1), 0)
Find_PO = Application.IfError(Application.Search(PO_filter, Sheets("Order list").Range("R" & j + 2).Text, 1), 0)
If Find_Fabric > 0 And Find_PO > 0 Then
Sheets("Order list").Range("X" & j + 2).Value = Sheets("Fabric contract").Range("O" & i + 2).Value
Sheets("Order list").Range("Y" & j + 2).Value = Sheets("Fabric contract").Range("W" & i + 2).Value
End If
Next j
Next i
Else: MsgBox "Incorrect Format"
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Application.Calculation = xlCalculationAutomatic
End Sub
File đính kèm
Chỉnh sửa lần cuối bởi điều hành viên: