Board logo

標題: [發問] 請教:加速方法 [打印本頁]

作者: 198188    時間: 4 小時前     標題: 請教:加速方法

  1. Sub Copy_Rack_Item()

  2. Dim Brr, Arr, i&, n&, Q&, T$, S$, MyPath$, xFile$, xBook As Workbook, Re

  3. Worksheets("Rack").Range("A2:O65600").Delete
  4. Worksheets("Item").Range("A2:O65600").Delete
  5. n = 2
  6. T = Worksheets("Inv").Range("M1")
  7. Application.ScreenUpdating = False

  8. MyPath = "S:\EXPORT SHIPMENT\"
  9. xFile = "Delivery Note Input Template.xlsx"
  10. On Error Resume Next
  11. Set xBook = Workbooks(xFile)
  12. If xBook Is Nothing Then
  13.    Set xBook = Workbooks.Open(MyPath & xFile, , True, , "")
  14.    Re = True: ThisWorkbook.Activate
  15. End If
  16. On Error GoTo 0


  17. Brr = xBook.Sheets("Rack").UsedRange
  18. For i = 2 To UBound(Brr)
  19.    
  20.    If xBook.Sheets("Rack").Cells(i, 11) = T Then
  21.       xBook.Sheets("Rack").Rows(i).Copy Destination:=Worksheets("Rack").Rows(n)
  22.       n = n + 1
  23.    End If
  24. Next i

  25. Q = 2
  26. S = Worksheets("Rack").Range("A2")
  27. Arr = xBook.Sheets("Item").UsedRange
  28. For i = 2 To UBound(Arr)
  29.    If xBook.Sheets("Item").Cells(i, 1) = S Then
  30.       xBook.Sheets("Item").Rows(i).Copy Destination:=Worksheets("Item").Rows(Q)
  31.       Q = Q + 1
  32.    End If
  33. Next i

  34. 12: If Re = True Then xBook.Close 0
  35. End Sub
複製代碼
有兩個Excel,
本檔,Inv 表 M1儲存格 是 Invoice no
本檔,Rack 表 複製目的地 Row 2 開始
本檔,Item 表 複製目的地 Row 2 開始

來源檔 Delivery Note Input Template.xlsx
本檔,Rack 表  K 欄是 Invoice No,  A 欄是 Work Order No
本檔,Item 表 A 欄是 Work Order No

如果來源檔Rack 表 K 欄 的 Invoice No 等於 本檔Inv 表 M1儲存格 是 Invoice no
複製  來源檔 Rack 表該欄到 本檔Rack 表 複製目的地 Row 2 開始往下

如果來源檔 Item 表 A 欄是 Work Order No 等於 本檔Rack 表A 欄是 Work Order No
複製  來源檔  Item 表 該欄到 本檔 Item 表  複製目的地 Row 2 開始往下




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)