如何将数据导入现有工作表,然后在VBA中的第二次导入时覆盖数据?

时间:2019-01-22 03:09:27

标签: excel database vba import text-files

我当前的工作簿由两个工作表组成:1)控件2)Raw。通过“控件”,我可以按下许多按钮来测试正在构建的进程。我目前正在将数据从文本文件导入另一个Excel工作表“ Raw”。我记录了将文本文件导入Raw工作表的宏,并获得了代码。我对其进行了少许修改,以为任何用户创建一个动态文件路径,并注释掉了一行代码(引起了连续错误,并且找不到很好的解决办法)。我遇到了我正在苦苦挣扎的错误(我不是开发人员-只是边走边学)我尝试从控件工作表运行宏并将文本文件数据发送到原始工作表时,会遇到错误。通知中说:

运行时错误'-2147024809(80079957)':目标范围不在创建查询表的工作表上。

我理解该消息(我不是从Raw工作表中运行宏),但是我不知道如何修复代码以使其运行。

我的第二个问题是,如果有人可以帮助解决第一个问题,那么当我再次运行testimport宏时,我该如何更改代码(如果有的话)以覆盖“ Raw”中的数据?

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

结束子

0 个答案:

没有答案