我有一个单元格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