4

スプレッドシートの最初の 7 行 (正確な数は異なる場合があります) を選択し、32 行下に移動しようとしています (下に移動する行数も異なる場合があります)。誰かがコードを手伝ってくれませんか? 私が試してみました:

Worksheets("Report").Cells(x1, 5).EntireRow.Offset(32, 0).Select

私も試しました

for i = 1 to 7
set x1 = worksheets("Report").Cells(i, 5)
Rows(x1).EntireRow.Offset(32, 0).Select

どちらも機能しません。助けてくれてありがとう!

4

3 に答える 3

10

これはあなたが求めることを行い、32 の後に行がある場合はそれらを下にシフトします。

Sub MoveRowsDown()
Dim NumRows As Long
Dim TargetRow As Long
Dim ws As Excel.Worksheet

NumRows = 7 'change as necessary
TargetRow = 33 'change as necessary
Set ws = ActiveSheet ' change as necessary

ws.Range("A1").Resize(NumRows).EntireRow.Cut
ws.Range("A" & TargetRow + NumRows).EntireRow.Insert shift:=xlDown
End Sub

編集:これは、派手な挿入なしで、カットアンドペーストするだけのバージョンです:

Sub MoveRowsDown()
Dim NumRows As Long
Dim TargetRow As Long
Dim ws As Excel.Worksheet

NumRows = 7 'change as necessary
TargetRow = 33 'change as necessary
Set ws = ActiveSheet ' change as necessary

ws.Range("A1").Resize(NumRows).EntireRow.Cut Destination:=ws.Range("A" & TargetRow)
End Sub
于 2012-11-21T16:07:48.903 に答える
2

これを試して

Sub marine()

ActiveSheet.Rows("32:38").Value = ActiveSheet.Rows("1:7").Value
ActiveSheet.Rows("1:7").Clear

End Sub

activesheet をシート名に置き換えます。アクティブシートは最高ではありません

于 2012-11-21T22:22:59.260 に答える