Excel: 매크로를 사용하여 데이터 소스 변경

Excel: 매크로를 사용하여 데이터 소스 변경

외부 데이터 소스로 CSV 파일(thing party 프로그램에서 생성됨)을 사용하고 있는데 매크로에서 경로를 변경하고 싶습니다. 어떻게 해야 합니까?

내 문제에 대한 또 다른 수용 가능한 대답은 내 경우에는 csv와 xls가 모두 동일한 디렉토리에 있다는 점을 감안할 때 Excel 파일과 관련된 경로를 지정하는 방법입니다. 방법을 찾지 못했습니다.

답변1

Sub Import()
    Dim FilePath As String
    FilePath = "TEXT;C:\directory\" & Cells(1, 1).Value
    ActiveWorkbook.Worksheets.Add
    With ActiveSheet.QueryTables.Add(Connection:=FilePath, Destination:=Range("$A$1"))
        .Name = "Book1"
        .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)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With

End Sub

sheet1 A1에 파일(예: book3.csv)을 넣으면 데이터가 포함된 새 시트가 생성됩니다. C:\directory를 입력이 있는 디렉토리로 변경하고 5행 "Range"에서 출력 범위를 변경할 수 있습니다.

또한 3행 "Cells(1,1)은 입력 셀을 나타내므로 원하는 경우 Sheet1 A1에서 이를 변경할 수 있습니다. 참조 셀에 파일 확장자를 표시해야 합니다. 그렇지 않으면 어떤 파일을 저장할지 알 수 없습니다. 이 매크로를 실행하면 대상 데이터가 포함된 새 시트가 생성됩니다. 새 통합 문서가 필요하거나 기존 시트에 삽입하려면 알려주세요.

또한 속성을 보면 쉼표로 구분된 파일이므로 변경할 수도 있고, 아니면 직접 매크로를 기록(개발자 탭 -> 매크로 기록)하고 상단에 FilePath 유형 명령을 삽입하고 연결 명령을 변경할 수도 있습니다.

관련 정보