我想从一个工作簿的每个工作表中复制使用的范围,并仅将转置在新工作簿中的值粘贴到一张纸上。如果可能的话,它们可以彼此堆叠而不是并排堆叠吗?这是我到目前为止所尝试的。.我不确定如何堆叠它们,并且粘贴特殊(转置或粘贴值)不能正常工作。除了不知道如何连接范围外,我在做什么错?不确定application.union
方法有多大帮助。感谢您的帮助!
Sub transposeRange()
Dim sourceRange As Range, targetRange As Range
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Set sourceRange = Workbooks("LBWPL_Jan_Feb.xlsm").Worksheets(1).UsedRange
Set targetRange = Workbooks("janfeb_totals.xlsm").Worksheets(1).Range("A1")
With sourceRange
sourceRange.Copy
targetRange.PasteSpecial _
xlPasteValues, Transpose:=True
' WorksheetFunction.Transpose (targetRange.Value2) << this seems to not execute.
End With
Next ws
End Sub
现在,当我执行此代码时,由于复制和粘贴区域的大小不同,出现无法粘贴的错误。
类似的东西应该是一个好的开始:
Sub transposeRange()
Dim sourceRange As Range, targetRange As Range
Dim ws As Worksheet, data, rng As Range
Set targetRange = Workbooks("janfeb_totals.xlsm").Worksheets(1).Range("A1")
For Each ws In ThisWorkbook.Worksheets
Set rng = ws.UsedRange
data = Application.Transpose(rng.Value)
targetRange.Resize(rng.Columns.Count, rng.Rows.Count).Value = data
Set targetRange = targetRange.Offset(rng.Columns.Count) 'move destination down
Next ws
End Sub