感謝 lenchou兄回覆

不過由於檔案B的 C ,D 列資料已經存在,只需將 K 列的空白資料填入,須要怎麼修改呢?
謝謝!
基本上 3 樓的寫法是完全依照A檔的內容寫到B檔,比較乾脆也比較保險;
B檔 C,D 欄已存在的情形,則必須確保資料沒有遺漏才行。
資料量較大的時候不建議用公式解決,大量的公式運算/重算會使你感覺很慢。
尤其是跨檔案的公式連結更是麻煩一堆。
然而使用程式時,MATCH 函數在這裡確實是好用的。
Sub zz()
Set a = Workbooks("檔案A.xls").Sheets(1)
Set b = Workbooks("檔案B.xls").Sheets(1)
Set aRange = a.[A1].CurrentRegion
'A檔案A1的連續範圍lastrow = b.[A1].End(xlDown).Row
For rb = 1 To lastrow
r = Application.MATCH(b.Cells(rb, 4),aRange.Columns(1),0)
c = Application.MATCH(b.Cells(rb, 3),aRange.Rows(1),0)
b.Cells(rb, 11) = a.Cells(r, c)
Next rb
End Sub