运行时错误438:对象不支持此属性或方法
我创建了一个自动创建查询的宏,代码在我的Excel(Excel 2016)以及同事的PC上运行良好,但它在第三位同事的PC上不起作用(我的猜测是excel版本,但我不知道他是否使用其他版本)
System.out.println(DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now()));
我删除了格式化查询的公式部分。继续代码:
Dim Datei2 As String
Datei2 = Application.ThisWorkbook.Path & "\NameofFile.csv"
Application.ThisWorkbook.Queries.Add Name:="QueryName", _
Formula:= _
"let" & Chr(13) & "" & Chr(10) & " Quelle = Csv.Document(File.Contents(""" & Datei2 & """),
调试器标记整个事物,从Application.ThisWorkbook.Worksheets.Add
With Application.ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
"OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=""NameofQuery"";Extended Properties=""""" _
, Destination:=Range("$A$1")).QueryTable
.CommandType = xlCmdSql
.CommandText = Array("SELECT * FROM [NameOfQuery]")
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.ListObject.DisplayName = "NameOfQuery"
.Refresh BackgroundQuery:=False
End With
Application.ActiveSheet.Name = "NameOfFile"
End Sub
等到公式的末尾,就在Application.ThisWorkbook
之前
编辑:我在使用Excel 2013的其他PC上测试了它,问题似乎是Excel 2016之前的所有旧版本都不支持通过.csv导入数据。在Excel 2016中,有一个专门用于通过.csv导入数据的按钮,而在Excel 2013中,此按钮不存在。如何将代码转换为旧版本?
提前感谢您的回答!