0

最初の行にテキストのパターンがある 1000 行以上のワークシートがあり、次に 3 つの空白行があります。列 B の最初の行から次の 3 行までテキストをコピーする必要があります。次に、これら 3 行を最初の行のグループとして指定する必要があります。最初の 2 行で動作する以下のコードを取得しましたが、3 行目で停止し、コンパイル エラー: 構文エラーが発生します。ステップを実行して最初のマクロを記録したことから、行 3 の先頭である Rows が必要であることはわかっていますが、グループ化する行が次の 3 行であることをシステムに伝える正しい構文を見つけることができないようです。

編集:不足しているコード サンプルを追加しました。

Selection.AutoFill Destination:=Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(3, 0)), Type:=xlFillDefault
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(3, 0)).Select
Rows(ActiveCell.Row 1,ActiveCell.Row 3).Select
Range(ActiveCell.Offset(3, -1)).Activate
Selection.Rows.Group
Range(ActiveCell.Offset(4, 0)).Select

2 番目の編集: 次の 3 行のグループ化を達成するためにキーストロークを行うことから、記録されたマクロに追加されました。最初の行を他の 3 行にコピーしたところから始めて、キーストロークは 1 つ下、Shift/スペース、Shift/2 つ下、Alt/dgg でした。大きい:

Rows("1037:1039").Select
Range("A1039").Activate
Selection.Rows.Group
4

1 に答える 1

0

[開発] タブの [コード] セクションから [相対参照を使用] を有効にしてマクロを記録する から、問題を解決するために作業モデルを記録しました。このマルコは次のことを行います: - アクティブなセルの内容を 3 行下にコピーします - 3 行全体を選択します - それらの 3 行を最初の行のグループにします - 次のグループ化の次のプライマリ行に移動します

########## 記録されたマクロからの最初のスクリプト ##############################
Selection.AutoFill Destination:=ActiveCell.Range("A1:A4"), Type:=xlFillDefault
ActiveCell.Range("A1:A4").Select
ActiveCell.Offset(1, 0).Rows("1:3").EntireRow.Select
ActiveCell.Offset(3, 0).Range("A1").Activate
Selection.Rows.Group
ActiveCell.Offset(1, 0).Range("A1").Select

結果のマクロをテストしたところ、4 行目を削除することで修正された問題が見つかりました。したがって、成功したマクロ コードを以下に示します。

%%%%%%%%%%%%%%%%%%%%%%%%%%%% Final Script
Selection.AutoFill Destination:=ActiveCell.Range("A1:A4"), Type:=xlFillDefault
ActiveCell.Range ("A1:A4").Select
ActiveCell.Offset(1, 0).Rows("1:3").EntireRow.Select
Selection.Rows.Group
ActiveCell.Offset(3, 1).Range("A1") 。選択する

于 2013-09-10T16:33:43.057 に答える