我有一個單元格D5通過公式[January.Book1.xlsx] Sheet1!$ D $ 5鏈接到另一個工作簿。每個月更改名稱的工作簿的單元格引用
問題是,January.Book1.xlsx在下個月被更新的數字稱爲February.Book1.xlsx。但是,它位於相同的文件夾中並且結構相同。
是否有一種簡單的方法可以使這個單元格自動引用到Sheet1!$ D $ 5爲最新的工作簿,並且隨着時間的推移每月更新一次?
我有一個單元格D5通過公式[January.Book1.xlsx] Sheet1!$ D $ 5鏈接到另一個工作簿。每個月更改名稱的工作簿的單元格引用
問題是,January.Book1.xlsx在下個月被更新的數字稱爲February.Book1.xlsx。但是,它位於相同的文件夾中並且結構相同。
是否有一種簡單的方法可以使這個單元格自動引用到Sheet1!$ D $ 5爲最新的工作簿,並且隨着時間的推移每月更新一次?
將此代碼的ThisWorkbook
模塊中保存宏工作簿啓用(.xlsm
):
Private Sub Workbook_Open()
' Change the worksheet to whichever one you need
Worksheets(1).Range("D5").Formula = "='[" & WorksheetFunction.Proper(MonthName(Month(Now()))) & ".Book1.xlsx]Sheet1'!$D$5"
End Sub
這是比Excel公式更多的數據體系結構問題。
創建一個名爲「CurrentMonth.xlsx」的書的鏈接。
然後使用一個採取1月文件並將其保存爲名爲「CurrentMonth.xlsx」的文件的過程。這可以通過Powershell來實現。
下個月,您將獲取2月文件,創建副本並覆蓋/重命名爲「CurrentMonth.xlsx」。
像這樣的東西可以安排與Powershell或與VBA。
這裏的基本想法是,您不要更改查找文件的名稱,因此您不必更改Excel工作簿中的公式。而是在操作系統層使用工具,以確保Excel公式指向的文件始終被調用爲相同的,並用您的日程安排中的當前數據替換。
感謝您tevlyn :) – OlaOkland
teylyn的回答的反應是更強大和值得推薦的解決方案,但它是技術上也可以這樣做。 – Vegard