每月更改名称的工作簿的单元格引用

时间:2017-06-21 09:10:52

标签: excel excel-vba vba

我有一个单元格D5链接到另一个工作簿,公式为[January.Book1.xlsx] Sheet1!$ D $ 5.

问题在于,January.Book1.xlsx在下个月被称为February.Book1.xlsx,其中包含更新的数字。但是,它位于同一文件夹中且结构相同。

是否有一种简单的方法可以将此单元格引用自动设置为Sheet1!$ D $ 5获取最新工作簿以及随着时间的推移每个月的更新?

2 个答案:

答案 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