2013-02-27 86 views
0

假设我已经在Excel中设置了一个数据连接来更新工作表上的列A-G并对列A进行排序。如果我在列H=SUM(B2:D2)这样的单元格中放入公式,数据连接,列H单元格引用可以搞砸了。例如,H2公式现在是=SUM(B7:D7)而不是=SUM(B2:D2)。我猜想原因可能是数据在第A-G列中移动,这是由于我对列A进行了排序。但是,将列H公式更改为使用绝对行引用 - =SUM(B$2:D$2) - 仍导致引用混乱。就好像Excel正在移动电子表格的整个行,而不仅仅是更新范围内的行。所以我的问题是:Excel数据连接更新单元格引用表外范围

1)有没有人看过这种行为?

2)如果你已经看到了这种行为,你知道如何关闭它吗?

+0

什么版本的Excel?这是一个官方表格(XL 2003列表)吗?如果是这样,列表中的列H?如果没有,也许它应该是:)。 – 2013-02-27 18:42:24

+0

这是Excel 2010,我正在使用工作簿连接对话框。 – 2013-03-02 02:26:28

回答

1

您只需扩展表格即可覆盖H列!刷新数据时,Excel区分查询和其他列中的列,并保留后者。同时,所有列都会扩展到查询返回的任意行数...

+0

谢谢。如果我得到很多时间,我可以尝试。我终于放弃了,并为自制的ADO记录集合提供了内置的魔术。即使这样也比本来更有问题。它应该如此简单: – 2013-03-02 02:28:54

+0

(1)variant = recordset.getrows(n)(2)range.value = variant。 Excel中的范围是一行。但是由getrows返回的数组会返回 - 莫名其妙 - 作为数组(cols,rows)而不是直接可用的(由Excel)形式的数组(行,列)...在使用它来设置范围值之前的变量数组。即使得到单行也会得到一个数组(nCols,0),它作为第二维为'1'的二维数组,也不能直接用于设置范围(如果它是一行)并且只是在讨价还价。 – 2013-03-02 02:43:54

+0

+1。从长远来看,这种明显的解决方案将节省大量时间。 – 2013-03-02 03:24:25