我需要從 SheetA D3:D40 復制單元格并將轉置粘貼到 SheetB C2:AN2。
這是我的代碼:
Sub CopyPaste()
Worksheets("Questions").Range("D3:D40").Select
Selection.Copy
Worksheets("Apps").Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
Worksheets("Apps").Range("A1").Select
Application.CutCopyMode = False
End Sub
執行此操作后,出現Run Time Error 1004 Select method of Range class failed
我究竟做錯了什么?
uj5u.com熱心網友回復:
復制此代碼:
Sub CopyPaste()
With Worksheets("Questions")
.Range("D3:D40").Copy
End With
With Worksheets("Apps")
.Range("C2").PasteSpecial Paste:=xlPasteValues, Transpose:=True
End With
Application.CutCopyMode = False
End Sub
uj5u.com熱心網友回復:
在復制/粘貼值轉置中使用變數
Option Explicit
Sub CopyPasteTranspose()
' Source
Dim sws As Worksheet: Set sws = ThisWorkbook.Worksheets("Questions")
Dim srg As Range: Set srg = sws.Range("D3:D40")
' Destination
Dim dws As Worksheet: Set dws = ThisWorkbook.Worksheets("Apps")
Dim dfCell As Range: Set dfCell = dws.Range("C2")
Dim drg As Range: Set drg = dfCell.Resize(srg.Columns.Count, srg.Rows.Count)
' Copy by Assignment (only values (most efficient))
drg.Value = Application.Transpose(srg.Value)
' Note that the 'Selection' didn't change. It is as if nothing had happened,
' yet the values were written. You possibly don't need the following lines.
'dws.Activate
'dws.Range("A1").Select
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/375578.html
