
ファイル間で転置する必要があるのですが、行き詰まっていますか? 1 つのファイル内でのみ転置する場合、コードは機能します。しかし、別のファイルに転置しようとすると、機能しません。私の構文は明らかに間違っています。
80 件の顧客アンケートを 1 つにまとめたいと考えています。
動作する私のコードは次のとおりです:
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