Как импортировать данные в существующую таблицу, а затем перезаписать данные при втором импорте в VBA? - PullRequest
0 голосов
/ 22 января 2019

Моя текущая рабочая книга состоит из двух рабочих листов: 1) Элементы управления 2) Необработанные.«Элементы управления» позволяют мне нажимать несколько кнопок для тестирования процессов, которые я строю.В настоящее время я работаю над импортом данных из текстового файла в другой лист Excel «Raw».Я записал макрос, импортирующий текстовый файл в рабочую таблицу Raw, и получил код.Я немного изменил его, чтобы создать динамический путь к файлу для любого пользователя, и закомментировал одну строку кода (вызывал постоянные ошибки и не мог найти хорошее объяснение для исправления).Я сталкиваюсь с ошибкой, с которой я борюсь (я не разработчик - просто учусь на ходу) Ошибка, которую я получаю, возникает, когда я пытаюсь запустить макрос из рабочего листа элементов управления и отправить данные текстового файла в необработанный рабочий лист.В уведомлении говорится:

Ошибка времени выполнения '-2147024809 (80079957)': диапазон назначения не находится на том же рабочем листе, на котором создается таблица запросов.

Я понимаю сообщение(Я не запускаю макрос из рабочей таблицы Raw), но я не знаю, как исправить код, чтобы запустить его.

Мой второй вопрос: если кто-то может помочь с первой проблемой, как мне придется изменить код, если вообще нужно, чтобы данные, содержащиеся в «Raw», перезаписывались при запуске testimport?опять макрос?

Sub TestImport()

Dim FPath As Variant

FPath = "TEXT;" & Environ("userprofile") & "\MyFilePath\File.txt"

MsgBox FPath

With ActiveSheet.QueryTables.Add(Connection:= _
    FPath _
    , Destination:=Range("Raw!$A$1"))
    '.CommandType = 0 (Error here has something to do with query table data type - no value will solve so comment out and program runs)
    .Name = "File"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .TextFilePromptOnRefresh = False
    .TextFilePlatform = 437
    .TextFileStartRow = 1
    .TextFileParseType = xlDelimited
    .TextFileTextQualifier = xlTextQualifierDoubleQuote
    .TextFileConsecutiveDelimiter = False
    .TextFileTabDelimiter = False
    .TextFileSemicolonDelimiter = False
    .TextFileCommaDelimiter = False
    .TextFileSpaceDelimiter = False
    .TextFileOtherDelimiter = "|"
    .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, _
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
    .TextFileTrailingMinusNumbers = True
    .Refresh BackgroundQuery:=False
End With
ActiveWindow.SmallScroll Down:=-360
Sheets("Raw").Select

End Sub

...