在Excel中更改10,000个单元格的文件位置

我在Excel中创build工作簿,并需要它来引用其他工作簿。 我从一年中的每一天的大约30个细胞拉动信息。 每年的每一天都是一个单独的工作簿。 所以,如果我只复制并粘贴每一天的公式,就有超过10,000个单元需要更改。

我现在的参考是这样的:

='C:\user\data\year\[day.xlsx]Sheet1'!A1)

A1将被30个其他单元replace,并且day.xlsx将被replace为一年中的所有日子。 对于我迄今为止所尝试的所有内容,Excel都要求我为每个单元格手动定位每个文件。

有什么办法让这个过程比手动更改这些单元格中的每一个的文件名更快? 也许能够将文件名中的date设置为将链接到单元格的variables?

任何指导将不胜感激。 谢谢。

总结一下:你想通过string操作来创build指定格式的地址,然后查询它们的值。

其实有这个function,就是所谓的INDIRECT 。 不幸的是,它需要源文件打开外部引用,所以我不知道这是否对你有帮助。 我从来没有试图一次打开365的Excel文件。 另请参阅关于该主题的这个问题 。

如果你不想手工打开所有文件,你可能不得不使用VBA(或者如果你使用Office 2016的话,也许是JavaScript)。 创build一个为您生成参考的macros应该不难。

这是macros观的起点:

 Sub Makro1() Dim day As Integer For day = 1 To 365 Cells(day, 1).FormulaR1C1 = "='[BASENAME" & day & ".xlsx]SHEETNAME'!R1C1" Next i End Sub 

还有一件事:之后,你的工作簿将被链接到所有这些日子文件。 因此,它将反映在date文件中发生的变化。 如果不需要,最好断开连接并用每个参考值replace。 你可以通过数据 – Data->Queries&Connections->Manage Links->sever connection (我正在翻译我的本地化的Excel版本,所以确切的名称可能会有所不同),或者你可以复制每一个东西,然后只粘贴值。