iT邦幫忙

0

EXCEL的問題4

各位邦友好
小弟的vba又碰到瓶頸 想問問大家
第一個問題是如何以比對不同檔案的資料
譬如小弟的需要材料單跟出貨單
這兩個不是同一檔案的工作表
工作表名稱都一樣是Sheet0
然後小弟想要讓出貨單的B欄位跟需要材料單的C欄位比對
有一樣的 直接把出貨單的C欄位的資料放在需要材料單F的欄位
沒有一樣持續比對下一筆 請告訴小弟語法
剩下的小弟自己完成 再次多謝

看更多先前的討論...收起先前的討論...
註冊單 iT邦新手 4 級 ‧ 2019-01-16 15:14:22 檢舉
https://www.youtube.com/watch?v=QNqMlejReME
不清楚問題
關鍵字:跨檔案資料參照
參考:[跨檔案](http://alyoou.pixnet.net/blog/post/42784096-excel-vba-%E8%B7%A82%E5%80%8B%28%E6%88%96%E4%BB%A5%E4%B8%8A%29%E6%AA%94%E6%A1%88%2C%E5%85%A7%E5%AE%B9%E8%B3%87%E6%96%99%E9%81%8B%E7%94%A8)
```
Range("a1").Formula = "='C:\XXX\[B.xls]Sheet1'!$A$1"
```
For i = 2 To 200
For j = 17 To 250
If (Range("c" & j).Value = "='[出貨單.xlsm].sheet0'!$B" & i) Then
If (Range("F" & j).Value = "") Then
Range("F" & j) = "='[出貨單.xlsm].sheet0'!$B" & i
Range("L" & j).Value = "2019/01/17"
Else
Rows(" & j+1: & j+1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("F" & j + 1).Value = "='[出貨單.xlsm].sheet0'!$B & $i"
Range("L" & j + 1).Value = "2019/01/17"
End If
End If
Next j
Next i
想問這樣寫法 為何不行
因為我檔案放在同一檔案夾內 所以應該不用再C:\XXXX了
加上去看看吧。說不定就能用了。

1 個回答

0
來杯拿鐵
iT邦新手 3 級 ‧ 2019-01-18 01:37:23

怕斷行用圖片顯示,下圖為
https://ithelp.ithome.com.tw/upload/images/20190118/200919106xBKbPMu9v.jpg
1.沒有依照教學「Formula」和「 Value」不一樣
原版 Range("a1").Formula = "='[B.xls]Sheet1'!$A$1"
Range("F" & j + 1).Value = "='[出貨單.xlsm].sheet0'!$B & $i"

同檔案夾可以省略沒錯,但是Formula不能改。
另外「"」要放前面一點
"='[出貨單.xlsm].sheet0'!$B & $i"
"='[出貨單.xlsm].sheet0'!$B &"$i

另外有邏輯上問題,明天有面試先睡了。

我要發表回答

立即登入回答