У меня странная проблема с VBA в Excel.Мы используем SAP как нашу финансовую систему в работе, и многие наши отчеты проходят через VBA.Мой коллега, который теперь оставил, экспортировал отчеты в виде текстового файла, а затем использовал функцию Querytables.add в Excel для импорта данных.
По большей части это сработало, но недавно Excel не удалось импортировать данныефайл, код будет работать без ошибок, но VBA просто пропустит Querytables без его импорта.
В настоящее время моя работа заключается в том, чтобы закрыть все экземпляры Excel, повторно открыть электронную таблицу и запустить макрос. Похоже, это работает большую часть времени, но это PITA.
Единственное, о чем я могу думать, это наше изменение в sharepoint и Office 365, но это не объясняет, почему макрос работает при первом открытии электронной таблицы.
Не возражает ли кто-нибудь просто подтвердить, что в коде чего-то не хватает?
Долгосрочным решением будет переписать эту часть кода и загрузить SAP непосредственно в Excel в виде файла .DAT, нок сожалению, у меня просто нет на данный момент времени :(
Спасибо, ребята :)
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