返回列表 上一主題 發帖

[發問] VBA 複製data問題(跨Sheet)

回復 13# dea172
  1. Sub FQC_IPQC()
  2. Dim Ay(0 To 1), A As Range, C As Range, y&, d#, m&, i!, Lot1$, Lot2, f, fd$, fs$, fc$
  3. Do
  4. fd = Application.GetOpenFilename("Excel Files (*.xls),*.xls", , "請選擇IPQC檔", , False)
  5. f = Split(fd, "\")
  6. fs = f(UBound(f))
  7. If InStr(fs, "IPQC") = 0 Then MsgBox "檔案選取不是IPQC檔" & Chr(10) & "請重新選擇"
  8. Loop While InStr(fs, "IPQC") = 0
  9. fc = Replace(fd, "IPQC.xls", "FQC.xls")
  10. With Workbooks.Open(fc)
  11. With Workbooks.Open(fd)
  12.    With .Sheets("Transfer")
  13.       Lot1 = Split(.[G2], "-")(0) & "-FQC3"
  14.       Lot2 = Split(.[G2], "-")(0) & "-FQC2"
  15.       y = Year(.[C1])
  16.       d = CDate(Format(.[C1], "m/d"))
  17.       m = .[L4]
  18.       Ay(0) = Array(Lot1, y, d, m)
  19.       Ay(1) = Array(Lot2, y, d, m)
  20.       Dim ar(0 To 1, 0 To 34)
  21.       For Each A In .[F4:F15]
  22.         For i = 0 To 2
  23.             ar(0, s) = A.Offset(, i).Value
  24.             ar(1, s) = A.Offset(, i + 3).Value
  25.             s = s + 1
  26.             If s = 35 Then GoTo 10
  27.         Next
  28.       Next
  29. 10
  30.     End With
  31.     .Close 0
  32. End With
  33. With .Sheets("Input")
  34.   Set C = .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
  35.   C.Resize(2, 4) = Application.Transpose(Application.Transpose(Ay))
  36.   C.Offset(, 4).Resize(2, 35) = ar
  37. End With
  38. End With
  39. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 15# dea172

1.沒有重複批號確認,
2.每傳一次資料, 使用者還需要開啟IPQC 檔案, 是否有更方便方式, 謝謝!
註: IPQC & FQC 檔案都是放同一資料夾下

1.不是每個 IPQC 對應一個 FQC  何來重複批號?當然也不會有資料累加的問題
2.我14#程式是比對兩個相同前綴檔名的IPQC & FQC
   若是你已經開啟其中某一檔案才做比對,那就請清楚敘述你的作業流程
   才知道要如何去簡化
學海無涯_不恥下問

TOP

        靜思自在 : 太陽光大、父母恩大、君子量大,小人氣大。
返回列表 上一主題