我编写了这段代码,但是仅在sheet1处于活动状态时才有效。如果sheet2是活动的,并且我运行代码,则出现1004错误。我不知道为什么预先谢谢你!
Public Sub trans()
Worksheets("Sheet1").Range(Cells(1, 1), Cells(3, 2)).Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
End Sub
答案 0 :(得分:0)
在您可以从其他工作表中选择一个范围之前,该工作表需要处于活动状态。例如。像这样的东西:
Public Sub trans()
Range(Worksheets("Sheet1").Cells(1, 1), Worksheets("Sheet1").Cells(3, 2)).Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
End Sub
答案 1 :(得分:0)
使用Range(“地址”)表示法,使Worksheets(“ Sheet1”)引用就足够了:
Public Sub trans()
Worksheets("Sheet1").Range("A1:B2").Copy
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
End Sub
或在With ... End With块中引用Worksheets(“ Sheet1”)以使Cells()引用它:
Public Sub trans()
With Worksheets("Sheet1")
.Range(.Cells(1,1), .Cells(3,2)).Copy
End With
Worksheets("Sheet2").Range("A1").PasteSpecial Transpose:=True
End Sub