使用Excel VBA将Powerpivot连接更改为csv文件
如何使用vba修改到csv文件的Powerpivot连接?我有一个Excel工作簿,带有连接到csv文件的Powerpivot模型。在Powerpivot窗口中,我可以导航到主页->现有连接,并根据需要编辑文件路径。我无法在vba中编辑此内容使用Excel VBA将Powerpivot连接更改为csv文件,vba,excel,csv,powerpivot,Vba,Excel,Csv,Powerpivot,如何使用vba修改到csv文件的Powerpivot连接?我有一个Excel工作簿,带有连接到csv文件的Powerpivot模型。在Powerpivot窗口中,我可以导航到主页->现有连接,并根据需要编辑文件路径。我无法在vba中编辑此内容 我在参数化Powerpivot连接上发现了错误。 不幸的是,我不知道如何修改以应用于csv文件连接而不是数据库连接 上介绍了另一种方法。这种方法创建与Excel本身中数据的连接。该连接随后在Powerpivot中可用。不在Powerpivot bc中创建
- 我在参数化Powerpivot连接上发现了错误。
不幸的是,我不知道如何修改以应用于csv文件连接而不是数据库连接 - 上介绍了另一种方法。这种方法创建与Excel本身中数据的连接。该连接随后在Powerpivot中可用。不在Powerpivot bc中创建连接至关重要。作者说,vba无法修改在Powerpivot中创建的连接李>
数据->获取外部数据->从文本菜单选项
我可以在vba中使用“Workbooks(“myWorkbook.xlsm”).Connections.AddFromFile“data.csv”创建相同的连接。我可以在“数据->连接->连接”对话框中手动编辑此连接。但是,当我尝试在vba中使用WorkbookConnections.TextConnection属性设置此连接时,vba会说“对象不支持此属性或方法”“
上面的链接主要关注数据库连接,而不是csv文件连接。但是,似乎可以使用
Microsoft ACE OLEDB 12.0连接,但我不能完全掌握它
在上有类似的问题,以便解决vba修改数据透视源的问题(如此处:)
但是,我不想将数据放入Excel中的表中,我想连接到它,以便在Powerpivot中使用它
我可能可以用powerquery来实现这一点,但是因为我已经有了所需格式的csv,所以我不想引入这个额外的步骤
我在Windows7上使用64位Excel 2013。谢谢你的帮助。我一直在玩类似的东西。还没有成功,但也许我们可以一起解决 我注意到的一件事是,这些到CSV文件的连接看起来并不像您预期的那样是文本连接,而是OLEDB连接 编辑:根据,这是不可能的: 修改PowerPivot内部的连接后,Excel和PowerPivot连接之间的链接将断开。事实上,您不能再修改Excel中的连接属性,如果要加载另一个表,则必须使用PowerPivot加载项需要使用外接程序意味着修改连接的选项在VBA中不再可用,因为(如您所见)无法使用VBA修改PowerPivot连接。
(重点是我的)我可以通过将csv文件连接设置为Microsoft.ACE.OLEDB.12.0连接来修改文件位置。在数据连接向导中,它实际上被标记为“Microsoft Office 12.0 Access数据库引擎OLE DB提供程序”。这帮我弄明白了。您需要添加“Microsoft ActiveX数据对象6.1”作为参考。手动创建连接后,下面是我用来修改连接的代码:
Sub editConnection()
With ActiveWorkbook.Connections("myConnectionName").OLEDBConnection
.Connection = "OLEDB;Provider= Microsoft.ACE.OLEDB.12.0; " & _
"Data Source=\\something.com\shared\myDepartment\newDirectory; " & _
"Mode=Read;Extended Properties = ""Text;HDR=Yes;FMT=Delimited;"""
End With
ActiveWorkbook.Connections("myConnectionName").Refresh
End Sub
我不知道如何修改文件名。这还强制PowerPivot中的表名为csv文件的名称。在不断开连接的情况下,您无法编辑它