iT邦幫忙

0

參照變數檔名儲存格

  • 分享至 

  • xImage

檔案test2 a1:a30儲存格 = test1 a1:a30儲存格
開啟test2與tsst1檔案同時,test2會自動更新連結

但只要test1檔名的數字變更,test2開啟檔案就會找不到連結

請問,test2的儲存格參照是否可改設定公式,只抓關鍵字檔名test,無論test後面的數字1怎麼變更,都還是參照得到test1的a1:a30儲存格資料

例如:test1改為test123或改為test0608或改為test王小明,以上test2 a1:a30儲存格均能參照得到test* a1:a30儲存格

請問以上是否有解呢?

測試檔http://www.FunP.Net/192353

看更多先前的討論...收起先前的討論...
小魚 iT邦大師 1 級 ‧ 2018-06-08 20:31:19 檢舉
檔案名稱改了就找不到檔案了啊...
@小魚 是否可抓取關鍵字"test"檔名呢?資料夾只會有此檔不會有其他重覆的test檔?醬有辦法嗎?
因為每次該檔名後面的數字變更,我就要重新選擇檔案連結,其實有點麻煩~~
小魚 iT邦大師 1 級 ‧ 2018-06-08 23:11:14 檢舉
VBA可以,直接在儲存格寫資料這要問其他大大了,我是覺得不行。
疑為什麼不直接把test1的檔名改掉?
(EX:妳test2都是固定抓test1這個檔名,那你拿到test123, 直接把他的檔名改名成test1,這樣是不是比較快,而不是改test2的每個儲存格的檔案連結)
@freessaint 因為test1為公司其他部門的檔案,故無法修該檔名,然後每天他的檔名可能不固定會加上日期或姓名不定,但前面test檔名為固定,所以..............
試了一下有類似的做法,但需要妳手動先把這個檔案打開("開啟狀態",否則動態參照會顯示REF錯誤),使用excel的INDIRECT 來取得動態的檔名

範例檔放在這:
https://drive.google.com/open?id=1fEFaQUQMphi7eM9Y4rtQ8O_uNJrqKoKV

1.testExcel/getFile.xlsm :
這是巨集放的excel 打開後有個按鈕,點選可以取得指定資料夾的檔案名稱,並放在excel的B2欄位。

2.testExcel/target 資料夾 (請只放一個檔案,因為我參照寫在B2欄位 @@)
你的目標檔案放的資料夾: 舉例放test2.xlsx


做法:
1.將 getFile.xlsm 跟 test2.xlsx 都打開。
2. getFile.xlsm 點選自動抓取檔案,會將檔名更新到B2欄位。
3. getFile.xlsm 的A排,會抓B2欄位的檔名,動態取得B2工作檔案的檔名。


----------------------------------分隔線-------------------------------

1.在excel要動態加載某個儲存格的變數,可以這樣做
=INDIRECT("'"&"C:\testExcel\target\"&"["&B3&".xlsx]"&"工作表1"&"'!"&"A1")

2.VBA自動抓取目錄底下的檔案語法 (目錄資料夾請只放一個檔案 )

Sub getFile()
Cells(1, 1).Activate
File = InputBox("請輸入要取得的資料夾路徑:", "", "C:\testExcel\target")
If File = "" Then Exit Sub
txt = Dir(File & "\*.*")
Do While True
Selection.Cells(1).Value = txt
txt = Dir
If txt <> "" Then
Selection.Offset(1, 0).Select
Else
Exit Do
End If
Loop
End Sub
@freessaint 非常感謝熱心幫忙~~~~~~~可以幫我回在回答嗎~~~~~~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
freessaint
iT邦新手 5 級 ‧ 2018-06-10 00:10:57
最佳解答

試了一下有類似的做法,但需要妳手動先把這個檔案打開("開啟狀態",否則動態參照會顯示REF錯誤),使用excel的INDIRECT 來取得動態的檔名

範例檔放在這:
https://drive.google.com/open?id=1fEFaQUQMphi7eM9Y4rtQ8O_uNJrqKoKV

1.testExcel/getFile.xlsm :
這是巨集放的excel 打開後有個按鈕,點選可以取得指定資料夾的檔案名稱,並放在excel的B2欄位。

2.testExcel/target 資料夾 (請只放一個檔案,因為我參照寫在B2欄位 @@)
你的目標檔案放的資料夾: 舉例放test2.xlsx

做法:
1.將 getFile.xlsm 跟 test2.xlsx 都打開。
2. getFile.xlsm 點選自動抓取檔案,會將檔名更新到B2欄位。
3. getFile.xlsm 的A排,會抓B2欄位的檔名,動態取得B2工作檔案的檔名。

----------------------------------分隔線-------------------------------

1.在excel要動態加載某個儲存格的變數,可以這樣做
=INDIRECT("'"&"C:\testExcel\target\"&"["&B3&".xlsx]"&"工作表1"&"'!"&"A1")

2.VBA自動抓取目錄底下的檔案語法 (目錄資料夾請只放一個檔案 )

Sub getFile()
Cells(1, 1).Activate
File = InputBox("請輸入要取得的資料夾路徑:", "", "C:\testExcel\target")
If File = "" Then Exit Sub
txt = Dir(File & "\*.*")
Do While True
Selection.Cells(1).Value = txt
txt = Dir
If txt <> "" Then
Selection.Offset(1, 0).Select
Else
Exit Do
End If
Loop
End Sub

我要發表回答

立即登入回答