我有一个单元格D5链接到另一个工作簿,公式为[January.Book1.xlsx] Sheet1!$ D $ 5.
问题在于,January.Book1.xlsx在下个月被称为February.Book1.xlsx,其中包含更新的数字。但是,它位于同一文件夹中且结构相同。
是否有一种简单的方法可以将此单元格引用自动设置为Sheet1!$ D $ 5获取最新工作簿以及随着时间的推移每个月的更新?
答案 0 :(得分:2)
这比Excel公式更像是数据架构的问题。
创建一个名为" CurrentMonth.xlsx"的书的链接。
然后使用一个获取January文件的过程并将其保存为名为" CurrentMonth.xlsx"的文件。这可以通过Powershell实现。
下个月,您将获得二月份文件,创建一个副本并将其覆盖/重命名为" CurrentMonth.xlsx"。
可以使用Powershell或VBA安排这样的事情。
这里的基本想法是您不会更改查找文件的名称,因此您不必更改Excel工作簿中的公式。而是在操作系统层使用工具,确保Excel公式指向的文件始终被称为相同,并替换为您日程表中的当前数据。
答案 1 :(得分:1)
将此代码放在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