我在Excel中使用VBA遇到了一个奇怪的问题。我们将SAP作为工作中的财务系统,我们的许多报告都通过VBA运行。我的一位同事现在离开了,将报告导出为文本文件,然后使用Excel中的Querytables.add函数导入数据。
在大多数情况下,这是可行的,但是最近Excel无法导入文件,代码将无错误运行,但是VBA会跳过查询表而不导入它。
目前,我的工作是关闭所有excel实例,然后重新打开电子表格并运行宏,这似乎在大多数情况下都有效,但它是PITA。
我唯一能想到的就是我们对共享点和Office 365的更改,但这并不能解释为什么在第一次打开电子表格时宏可以起作用。
有人介意只是确认代码中是否缺少任何内容吗?
长期的解决方案是重写这部分代码,并将SAP作为.DAT文件直接下载到Excel,但可惜我现在没有时间:(
谢谢大家:)
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & pathDirectory & "DFCGDownload.txt", Destination:=Range( _
"A1"))
.Name = "DFCGDownload"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = -535
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With