1

我的 Excel 工作簿 (2007) 中有一个数据连接,它引用了另一个 Excel 工作簿中的一个表。我有一个单元格在表的最后一列标题中引用日期值。每次更新外部工作簿并且此日期值更改时,我的工作簿中的单元格引用都会损坏并且单元格会显示#REF

如果它有助于我使用数据库查询。

连接字符串:{替换路径和工作簿名称}

DBQ=PATH\WORKBOOKNAME.xlsx;DefaultDir=PATH;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=1046;FIL=excel 12.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;

命令文本:{替换路径}

SELECT * FROM `PATH\WORKBOOKNAME.xlsx`.`Main$` `Main$` ORDER BY `Main$`.IP

这是刷新前 H 列中的单元格值的样子:

在此处输入图像描述

这是刷新后 H 列中的单元格值的样子:

在此处输入图像描述

此表的最后一列标题包含一个日期值,每次更新源工作簿时都会更改(源工作簿中的可变日期)。从技术上讲,此日期字段不是其他工作簿表的一部分。但是,数据连接仍在拉动它并将其包含在主工作表上的表格中。由于其他依赖关系,如果不更改其他几项内容,我将无法修改其他工作簿表和格式。我不确定是否有任何其他方法可以真正引用动态表头或正确引用此单元格,以免引用被破坏......

如果可能的话,我想在单元格公式中执行此操作,而不必使用宏。

任何帮助是极大的赞赏。谢谢你。

4

2 回答 2

0

我想解决方案就像使用间接一样简单......

=INDIRECT("G1")
于 2013-11-09T18:17:34.180 回答
0

如果您认为表头用作数据库字段名称,则不应更改表头。我可以想到一种解决方法,因为您直接为源书中的日期列提供范围名称,例如“日期”。然后在你的另一本书中,只需让单元格指向源书中的这个范围,即。make cells=[sourcebookname.xlsx]!Dates

于 2013-11-08T22:53:26.570 回答