返回列表 上一主題 發帖

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

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

小弟於工作會有一訂單明細工作表,希望可依計劃員,分別將其資料複製至A,B,C三檔案中(1202-->A檔,1205-->B檔,1206-->C檔),A~C檔案中原即已有訂單資料,新增的訂單資料需新增加入(例:原A檔案中已有100列,新加入的訂單資料需自動判定從101列自動輸入)

但非整列複製,僅有部份欄位資料需新增至新報表(如下,新報表中的C,G,J欄位為自行輸入,B欄位依來源資料為IS或OS即自動填入2,否則一律為空白)

如何以巨集快速達成此一目標,請各先教指教,小弟在此先拜謝了:lol :lol

來源資料欄位                                                                               
C                        F        J        B                D        E                H
新報表欄位                                                                               
A        B        C        D        E        F        G        H        I        J        K

資料.rar (7.72 KB)

小弟將非原設定3計劃員的資料刪除,此巨集執行上就沒問題了,再次感謝Hsieh版主

TOP

Hsieh版主,小弟執行上發現有問題:

因預設將1202-->A檔,1205-->B檔,1206-->C檔,但其實還有其他的代碼(例:1101,但此暫不需捉入訂單資料),結果執行巨集時就於此程式碼中停住,秀出錯誤訊息,請問是否有解法方法,謝謝??

If IsError(Application.Match(bs, Ws, 0)) Then Workbooks.Open ThisWorkbook.Path & "\" & bs: ReDim Preserve Ws(s): Ws(s) = bs: s = s + 1

TOP

謝謝Hsieh版主,小弟將欄數由原11改23就都可將原公式延伸套用了,巨集真的太方便,感謝Hsieh版主的教導,謝謝^^

TOP

Hsieh版主B.Resize(, 11).Value = ar這裡是指總欄數嗎??因為原資料有些是手動輸入的,有些是希望藉著巨集自動輸入,有些則是用公式套取的,如果這裡是指總欄位數,因檔案放在公司,明天試看看^^..謝謝你

TOP

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

TOP

感謝Hsieh 版主,因小弟原訂單資料中除了G及J欄位有公式外,尚有公式的欄位還有N,P,R,S,W欄位(欄位順序數為14,16,18,19,23),小弟依樣畫葫蘆設定公式如下,卻無法延伸套取公式,請問那裡有錯呢????
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, , , B.Offset(-1, 13).FormulaR1C1, , B.Offset(-1, 15).FormulaR1C1, , B.Offset(-1, 17).FormulaR1C1, B.Offset(-1, 18).FormulaR1C1, , , , B.Offset(-1, 22).FormulaR1C1)

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

感謝Hsieh 版主,小弟有一問題再請問,如果於A~C報表原固定欄位即有公式,如何在將新資料COPY到報表時,將各欄位的公式直接延伸套用????

訂單報表中有公式的欄位:G、J、N、P、R、S、W

附件中的A檔案有預設公式...

資料.rar (24.63 KB)

TOP

回復 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

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題