Excel VBA를 사용하여 파일 간 조옮김

Excel VBA를 사용하여 파일 간 조옮김

파일 간을 전환해야 하는데 막혔나요? 하나의 파일 내에서만 조옮김하면 코드가 작동합니다. 하지만 다른 파일로 바꾸려고 했더니 그렇지 않았습니다. 내 구문에는 분명히 결함이 있습니다.

단 하나로 바꾸고 싶은 고객 설문조사가 80개 있습니다.

작동하는 내 코드는 다음과 같습니다

Sub Trans2()
    Range("C14:C21").Select
    Selection.Copy
    Range("G6").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                           False, Transpose:=True
End Sub

하지만 한 통합 문서에서 실행하고 다른 통합 문서로 바꾸려고 하면 실패합니다.

내 "깨진" 코드는 다음과 같습니다.

Sub TransposeInfo()
    '
    ' Transpose info between files
    '
    Dim mySource As String
    Dim myDest As String
    Dim wbkWorkbook1 As Workbook
    Dim wbkWorkbook2 As Workbook

    'Define path and filename
    mySource = "C:\2018\CustSvy001.xls*"
    myDest = "C:\2018\CustResults.xlsx"

    'Open files
    Set wbkWorkbook1 = Workbooks.Open(mySource)
    Set wbkWorkbook2 = Workbooks.Open(myDest)

    'Select items to transpose
    wbkWorkbook1.Worksheets("Q8").Range("B8:B11").Select
    Selection.Copy
    wbkWorkbook2.Worksheets("New").Range("G6").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
                           False, Transpose:=True

    'Close the two workbooks
    wbkWorkbook1.Close (True)
    wbkWorkbook2.Close (True)
End Sub 

어떤 제안이 있으십니까? 저는 VBA에 대해 매우 녹색이므로 덜 복잡할수록 좋습니다.

답변1

이 오류가 발생하는 경우:

에러 메시지

파일 이름에 있는 문자 때문입니다 *. 파일 이름에 있는 정확한 문자로 바꾸세요.

.

이 시도:


Public Sub TransposeInfoBetweenFiles()
    Dim mySource As String
    Dim myDest As String
    Dim wbkWorkbook1 As Workbook
    Dim wbkWorkbook2 As Workbook

    'Define path and filename
    mySource = "C:\2018\CustSvy001.xlsx" '<- Replaced "*" with "x" or "m"
    myDest = "C:\2018\CustResults.xlsx"  '<- This is Ok (exact path and file name)

    Application.ScreenUpdating = False

    'Open files
    Set wbkWorkbook1 = Workbooks.Open(mySource)
    Set wbkWorkbook2 = Workbooks.Open(myDest)

    'Select items to transpose
    wbkWorkbook1.Worksheets("Q8").Range("B8:B11").Copy
    wbkWorkbook2.Worksheets("New").Range("G6").PasteSpecial Paste:=xlPasteAll, _
                                               SkipBlanks:=False, Transpose:=True
    'Close the two workbooks
    wbkWorkbook1.Close True
    wbkWorkbook2.Close True

    Application.ScreenUpdating = True
End Sub

관련 정보