我想将我的工作表的特定范围转置到另一张工作表。因此我有这个代码:
With datasheet
finalrow = .Cells(.rows.Count, 25).End(xlUp).Row
Dim unionRng As Range
For i = 2 To finalrow
If Cells(i, 25) = duplicate Then '<column 0
If Not unionRng Is Nothing Then
Set unionRng = Union(unionRng, .Range(.Cells(i, 25), .Cells(i, 30))) ' 'P to W
Else
Set unionRng = .Range(.Cells(i, 25), .Cells(i, 30))
End If
End If
Next i
End With
If Not unionRng Is Nothing Then
If IsEmpty(reportsheet.Range("J200").End(xlUp)) And reportsheet.Range("J200").End(xlUp).Row = 1 Then
unionRng.Copy reportsheet.Range("J150")
unionRng.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Else
unionRng.Copy reportsheet.Range("J200").End(xlUp).Offset(1, 0)
unionRng.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End If
End If
但转置到另一个工作表到单元格J150无法正常工作,我总是得到错误1004.
我的PasteSpecial Transpose:=True
出现了什么问题?
答案 0 :(得分:1)
此处的问题是unionRng
是一系列统一的单元格选择,您尝试使用unionRng.PasteSpecial
粘贴,但Excel不支持粘贴到多个单元格选择中。
所以你可能意味着下面的内容
unionRng.Copy 'copy only and past below
reportsheet.Range("J150").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=True
您的其他PasteSpecial
同样的问题。