
ตัวอย่างการปรับ Code ครับ
Code: Select all
Sub MainBOM()
MsgBox "INPUT DATA NOW!!"
Dim mybook As Workbook
Dim i As Long
Dim dbbook As Workbook
Dim l As Long
Dim aRs As Variant, aTg As Variant
Dim rAll As Range, r As Range
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set mybook = ThisWorkbook
aRs = VBA.Split("K,L,N,O,P,Q,R,S,T,W,X,Y,Z,AB,AF,AH,AI,AJ,AK,AL,AO", ",")
aTg = VBA.Split("A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,V", ",")
If mybook.Sheets("MainBOM").Range("W3").Value = "SX3000ec" Then
Set dbbook = Workbooks.Open("C:\Users\Lenovo\Desktop\EDS_BOM LIST SX3000 ec.xlsx", UpdateLinks:=False, ReadOnly:=True)
mybook.Sheets("MainBOM").Range("A11:U500").ClearContents
With dbbook.Worksheets("BOM List")
Set rAll = .Range("b4", .Range("b" & .Rows.Count).End(xlUp))
End With
With mybook.Sheets("MainBom")
For Each r In rAll
If r.Value = .Range("n2").Value Then
l = .Range("a" & .Rows.Count).End(xlUp).Offset(1, 0).Row
For i = 0 To UBound(aRs)
.Range(aTg(i) & l).Value = r.Parent.Cells(r.Row, aRs(i)).Value
Next i
End If
Next r
End With
dbbook.Close
End If
Set dbbook = Nothing
Application.ScreenUpdating = True
Application.Calculation = xlCalculationManual
End Sub
อย่าลืมตรวจสอบตัวแปร aRs (คอลัมน์ต้นทาง) และ aTg (คอลัมน์ปลายทาง) ว่าประกอบด้วยคอลัมน์ตรงกับที่ใช้งานจริงแล้วหรือไม่ด้วยครับ