目前工作簿中的 OpenText

目前工作簿中的 OpenText

Workbooks.OpenText方法 (Excel) 文檔說:

表達開放文字檔案名稱、原點、起始行、資料類型、文字限定符、連續分隔符號、製表符、分號、逗號、空格、其他、OtherChar、FieldInfo、TextVisualLayout、DecimalSeparator、ThousandsSeparator、TrailingMinusNumbers、Local

表達一個變數代表一個作業簿目的。

在我的專案中我使用

fPath = "C:\CSV Files\" & FName
Workbooks.OpenText Filename:=fPath, Local:=True

這將建立一個額外的工作簿。我希望程式碼在現有工作簿中建立一個新的電子表格。我已經嘗試過這段程式碼

fPath = "C:\CSV Files\" & FName
ActiveWorkbook.OpenText Filename:=fPath, Local:=True

這會彈出運行時錯誤 438。這個話題說:

當您嘗試使用不屬於該物件的方法/屬性時。例如,如果您有 Workbook 物件並嘗試存取 Range 屬性,則會出現 438 錯誤,因為 Range 屬性屬於 Sheets 物件。

我實際上使用的是 Excel 2020,但我不知道是什麼導致了錯誤。

誰能幫我糾正一下嗎?

答案1

當您開啟文字檔案時,它將作為新工作簿打開,您無法立即將其新增至現有工作簿。

試試這樣的事情:

set OriginalWB = ActiveWorkbook
fPath = "C:\CSV Files\" & FName
Workbooks.OpenText Filename:=fPath, Local:=True
set newWB = ActiveWorkbook
ActiveSheet.Copy after:= OriginalWB.worksheets(1)
newWB.Close

答案2

要在同一工作簿中開啟文字文件,可以使用AddQueryTables以下方法進口文件,或者您可以使用 PowerQuery

這是由巨集記錄器產生的一些程式碼

    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\Users\xxxx\xxxx\tester.csv", Destination:=Range("$A$1"))
        .CommandType = 0
        .Name = "tester"
        .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 = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

相關內容