현재 통합 문서의 OpenText

현재 통합 문서의 OpenText

그만큼Workbooks.OpenText방법(Excel) 문서말한다:

표현.오픈텍스트(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, 탭, 세미콜론, 쉼표, 공백, 기타, 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 속성에 액세스하려고 하면 Range 속성이 Sheets 개체에 속하므로 438 오류가 발생합니다.

실제로 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

관련 정보