我有一个工作簿,其中包含由宏更新的数据透视表。该数据被刷新之前,虽然,连接字符串得到改变:使用Excel VBA更改连接字符串时创建的新数据连接
With ThisWorkbook.Connections("Data").ODBCConnection
.Connection = [Redacted]
.CommandText = "EXEC ExtractCases " & Client
.BackgroundQuery = False
.Refresh
End With
这似乎会导致数据透视表创建一个新的连接(或者叫做Connection
或Data1
,我似乎无法找出什么它的确可以在它们之间做出选择)并且指出这一点。所以,我再要补充线这样的:
Sheets("Pivot").PivotTables("Pivot").ChangeConnection ThisWorkbook.Connections("Data")
Sheets("Pivot").PivotTables("Pivot").PivotCache.Refresh
这似乎工作(当它不除外),但留下了很多死连接工作簿敲周围造成混乱。
我已经试过手动删除Connection
连接,但随后突然名字本身Data1
本身没有明显的原因,系统被打乱,因为不存在Connection
不能被删除。
有什么明显的我做错了吗?是否有一些神奇的方法可以解决这个问题,所以它不会在第一个地方造成这种头痛?
注意:我在Excel 2010中运行此代码,但工作簿必须在2003年之前可以打开;然而,我在发布之前删除了VB模块,所以2010宏的东西很好,只是在工作簿中的东西可能会被绊倒... ...
成才的Theres我还不完全了解。你每次都改变(必须改变)连接吗?或者由excel神奇地完成? – pintxo 2011-05-11 06:38:59
@cmmi:我需要每次更改连接 - 这是一份针对我们公司的所有客户端运行的报告,并且每次都只有该客户端的数据。 – Margaret 2011-05-16 02:29:20