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

Связанный контент