我正在编写一个宏,该宏将基于连接到SQL Server的文件创建一个静态文件。它应刷新Excel文件,删除与SQL Server的所有连接,将其另存为新文件,并将日期附加在末尾,然后关闭现有文件。
我遇到的问题是,当我清除连接时,会收到运行时错误5“无效的调用或参数”。奇怪的是,它昨晚和今天早上运行良好,然后似乎突然冒出这个错误。我认为我没有对文件进行任何更改以致于导致这种情况发生,所以我感到莫名其妙。
调试器在此处突出显示循环清除连接:
Do While ActiveWorkbook.Connections.Count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop
这是我的代码:
Sub CreateTemplate()
Dim FilePath As String
Dim NewName As String
ActiveWorkbook.RefreshAll
Do While ActiveWorkbook.Connections.Count > 0
ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
Loop
FilePath = "C:\": NewName = FilePath & "File" & Format(Date, "MM-DD-YYYY") & ".xlsb"
ActiveWorkbook.SaveAs Filename:=NewName, FileFormat _
:=xlExcel12, CreateBackup:=False
MsgBox "Your new template is saved with today's date appended"
ActiveWorkbook.Close False
End Sub
答案 0 :(得分:0)
您似乎可能有一个基于数据模型(例如PowerPivot)的数据模型或数据透视表。在这种情况下,请尝试使用以下代码:
Dim xConnect As Object
For Each xConnect In ActiveWorkbook.Connections
If xConnect.Name <> "ThisWorkbookDataModel" Then xConnect.Delete
Next xConnect