請教VBA在A工作簿中,若予參照存在另一硬碟區(或同碟區卻不同夾)的工作簿B時語法的問題?

是這樣的,假設我的

A工作簿存在 D:\測試夾

B工作簿存在 D:\來源夾

-----------------------------------

然後我用VBA讓A工作簿的(工作表1) 內的 事件程序 偵斷,當 A欄位有變動時,則B欄位會自動填入EXCEL的公式,陳述式如下:

Private Sub Worksheet_Change(ByVal Target As Range)

If Selection.Column = 1 And Cells(Target.Row, "A") <> "" Then

    Cells(Target.Row, "B").FormulaR1C1 = "=VLOOKUP(參照代碼,'D:\來源夾\公司基本資料.xlsx'!公司參照表,3,0))"

end if

end sub

 

===================

一開始還好好的可順利抓在A欄位輸入代碼後,B欄位就顯示公司的資料

可是後來怪怪的,於是我去點A工作簿的B欄位(也就是被VBA代入EXCEL公式的部份)

結果發現利用VBA代入公式卻變成了

=VLOOKUP(參照代碼,公司基本資料.xlsx!公司參照表,3,0))

而原先的路徑這塊都被自動刪去了..'D:\來源夾\

請問這要怎麼解決才能讓路徑也一塊加入呢?

因為實在找不到人可詢問,只好來此求助...謝謝

-========================================

2021/2/15 23:12補充

我剛剛試了很久,發現好像問題出在單引號這裡,會發現這個應該是先發現 雙引號會自動兩個變成一個的代入..

例如在EXCEL下的B1格內利用vlookup語法時

if (A1="","",vlookup(A1,彙總表,2,0))

將該公式直接丟入VBA

cells(1,2).formula = "=if(A1="","",vlookup(A1,彙總表,2,0))"

後當程序執行後,則B1的公式會變成

=IF(A1=",",VLOOKUP(A1,彙總表,2,0))

而雙引號的問題我知道可以多打入兩組=>"" 變成""""就可以

但單引號就..搞不定了...幫幫我..感謝

MaverickRay wrote:
是這樣的,假設我的A...(恕刪)

你是不是少給了什麼?
"=VLOOKUP(參照代碼,'D:\來源夾\公司基本資料.xlsx'!公司參照表,3,0)"
"=VLOOKUP(參照代碼,'D:\來源夾\[公司基本資料.xlsx]公司參照表'!$A$1:$C$10,3,0)"
紅色字是活頁簿路徑,藍色字是查閱值的範圍。
小小尉 wrote:
你是不是少給了什麼?(恕刪)

不好意思,其實是有給範圍的,如你回覆中所述一樣,只是我將範圍用公式名稱代入了,你指的範圍其實就是"公司參照表",裡頭已圈選了要查詢的範圍所在
(先前誤以為複製錯誤的回覆,就刪掉了)
謝謝
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!