【问题标题】:Changing a file location for 10,000+ cells in Excel在 Excel 中更改 10,000 多个单元格的文件位置
【发布时间】:2017-08-09 18:19:05
【问题描述】:

我正在 Excel 中创建一个工作簿,并且需要它来引用其他工作簿。我一年中的每一天都从大约 30 个单元格中提取信息。一年中的每一天都是一个单独的工作簿。因此,如果我只是每天复制和粘贴公式,我需要更改 10,000 多个单元格。

我现在的参考是这样的:

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

A1 将被 30 个其他单元格替换,而 day.xlsx 将被替换为一年中的所有天数。对于迄今为止我尝试过的所有操作,Excel 都要求我手动定位每个单元格的每个文件。

有没有什么办法比手动更改每个单元格的文件名更快?也许可以将文件名中的日期设置为将链接到单元格的变量?

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

【问题讨论】:

  • 这很可能是由于您的参考格式错误。您必须在路径之后和[filename]之前添加\
  • 这就是堆栈溢出的格式,我发帖的时候没有注意到,所以添加了一个空格,这样 \ 就会显示出来。它在我的工作簿上的格式正确。然而,这不是我要问的。
  • 合并工作簿的布局是什么?例如,一年中的每一天都是不同的行吗?或者它是一个不同的工作表?您从每个工作表复制的单元格范围是多少?我建议您添加这些详细信息。
  • “日”工作簿多久更改一次? IE。它们是刚刚创建的,之后就再也没有改变过,还是人们在以后进入并更改内容? (链接到 365 个其他未打开的工作簿的工作簿可能很难使用,因此,如果您要检索的数据是静态的,最好将这些值放入工作簿而不是不断链接其他工作簿中的信息。)

标签: vba excel variables repeat


【解决方案1】:

总结一下:您想通过字符串操作以规定的格式创建地址,然后查询它们的值。

实际上有一个函数可以做到这一点,它被称为INDIRECT。不幸的是,它需要打开源文件以供外部参考,所以我不确定它是否对您有任何帮助。我从未尝试过一次打开 365 excel 文件。 另见this question on that topic

如果您不想手动打开所有文件,您可能不得不使用 VBA(或者如果您使用 Office 2016,可能需要使用 JavaScript)。创建一个为您生成引用的宏应该不难。

以下是此类宏的起点:

Sub Makro1()
    Dim day As Integer

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

还有一件事:之后,您的工作簿将链接到所有这些日文件。因此,它将反映日文件中发生的更改。如果不需要,最好切断连接并用它的值替换每个引用。您可以通过Data->Queries&Connections->Manage Links->sever connection 进行操作(我是从本地化的 excel 版本翻译的,因此确切的名称可能会有所不同),或者您可以复制所有内容,然后仅粘贴值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多