返回列表 上一主題 發帖

依指定欄位中的資料自動判定輸入對應的檔案資料中???

回復 8# p6703
  1. Sub Ex()
  2. Dim Ws(), A As Range, B As Range, s%, bs$, w As Window
  3. For Each w In Windows
  4. ReDim Preserve Ws(s)
  5. Ws(s) = w.Caption
  6. s = s + 1
  7. Next
  8. With ThisWorkbook.Sheets(1)
  9.    For Each A In .Range(.[M2], .[M2].End(xlDown))
  10.      bs = IIf(A = 1202, "A.xls", IIf(A = 1205, "B.xls", IIf(A = 1206, "C.xls", "")))
  11.      If IsError(Application.Match(bs, Ws, 0)) Then Workbooks.Open ThisWorkbook.Path & "\" & bs: ReDim Preserve Ws(s): Ws(s) = bs: s = s + 1
  12.      With Workbooks(bs)
  13.      Set B = .Sheets(1).[A65536].End(xlUp).Offset(1)
  14.      ar = Array(A.Offset(, -10).Value, IIf(A.Offset(, -12) = "IS" Or A.Offset(, -12) = "IN", 2, ""), Date, A.Offset(, -7).Value, A.Offset(, -3).Value, A.Offset(, -11).Value, B.Offset(, 6).FormulaLocal, A.Offset(, -9).Value, A.Offset(, -8).Value, B.Offset(, 9).FormulaLocal, A.Offset(, -5).Value)
  15.      B.Resize(, 11).Value = ar
  16.      End With
  17.    Next
  18. End With
  19. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 10# p6703


    ar = Array(A.Offset(, -10).Value, IIf(A.Offset(, -12) = "IS" Or A.Offset(, -12) = "IN", 2, ""), Date, A.Offset(, -7).Value, A.Offset(, -3).Value, A.Offset(, -11).Value, B.Offset(-1, 6).FormulaR1C1, A.Offset(, -9).Value, A.Offset(, -8).Value, B.Offset(-1, 9).FormulaR1C1, A.Offset(, -5).Value)
學海無涯_不恥下問

TOP

回復 12# p6703
應該是寫入的欄數不夠吧
B.Resize(, 11).Value = ar
修改紅字的欄位數量試試
再不行請把檔案上傳
學海無涯_不恥下問

TOP

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題