マクロの初心者です。
Excel で次の形の総括表(Sheet "TOP")から、項目1の分類にしたがって同名のシートにコピーしてゆき、コピーしてないデータがなくなるまで続けるマクロを作りました。
-----------------------------------------------------
Sheet "TOP"
項目1____項目2_____項目3____項目4____項目5_____項目6_____転記
_ad_______あ________い_______う_______え________お_______レ
_bf_______い________ろ_______は_______に________ほ
_ck_______A_________B________C________D_________E
_dg_______1_________2________3________4_________5
------------------------------------------------------
二つめ以降の Sheet名は "ad" "bf" "ck" "dg"
------------------------------------------------------
Sub 転記()
' データ分別転記
Dim a As Variant
Dim b As Variant
Range("G1").Select '空行検索列の第1行
Do
ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る
a = ActiveCell.Value '変数宣言
Loop While Not IsEmpty(a) '空行検索終了
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select '行先頭に移動
Do
b = ActiveCell.Value 'セルの文字を記憶
If b = " " Then
Exit Do
End If
Range(Selection, Selection.End(xlToRight)).Select 'コピー範囲を指定
Selection.Copy 'コピーデータ記憶
Sheets(b).Select 'コピー先シートに移動 ★
Range("A1").Select '空行検索列の第1行
Do
ActiveCell.Offset(1, 0).Activate '空白でなければ一つ下に移る
d = ActiveCell.Value '変数宣言
Loop While Not IsEmpty(d) '空行検索終了
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False 'データ貼りつけ
Range("A1").Select 'トップセルに戻る
Application.CutCopyMode = False 'コピー範囲指定を解除
Sheets("TOP").Select '始めのシートに戻る
Selection.End(xlToRight).Select
ActiveCell.Offset(0, 1).Activate '転記済みチェック欄に移動
ActiveCell.FormulaR1C1 = "レ" '転記欄にチェック
ActiveCell.Offset(1, 0).Activate '一つ下に移る
Selection.End(xlToLeft).Select
Selection.End(xlToLeft).Select '行先頭に移動
Loop While Not IsEmpty(b) '空行になるまで繰り返し
End Sub
-----------------------------------------------------------------
ひととおり1行ごとにコピー、分類貼り付けはできましたが、最後に Sheet "TOP" の空行の最上行全体が範囲指定され copy mode におかれたような状態になって止まり、次のメッセージが出ます。
「実行時エラー '9'
インデックスが有効範囲にありません」
ここでデバッグ・ボタンを押すと、上記の★印の行が指定されます。
どこか正しくないところがあるはずですがよくわかりません。
間違いの箇所と正しい記述を教えて下さい。よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Excel(エクセル) エクセル VBAでシートのコピーを作りたい 1 2023/05/18 07:42
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
WEB上の表の列コピー選択方法は?
-
【エクセル】行挿入で数式もい...
-
ピボットテーブル→参照が正しく...
-
エクセル各シートの連動修正方法」
-
【エクセル】行や列の入れ替え...
-
オートフィルタのリストを順番...
-
マクロを強制的に有効にする方法
-
Excelピボットテーブルで 総計...
-
エクセルのドロップダウンリスト
-
EXCEL(エクセル)で、0.01以上...
-
エクセルで作成した縦に長い表...
-
エクセルに詳しい方、助けてく...
-
桐に入力した住所をコピーして...
-
エクセル 行と列の入れ替え方法
-
エクセルのリストから欠番を拾...
-
メモ帳からエクセルに貼り付け...
-
勤続年数の平均を求めたい時の関数
-
Excelでセル参照したとき、書式...
-
表のセル内の右側に余白?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
一つのシートの中に複数のペー...
-
WEB上の表の列コピー選択方法は?
-
エクセルで作成した縦に長い表...
-
【エクセル】行挿入で数式もい...
-
オートフィルタのリストを順番...
-
メモ帳からエクセルに貼り付け...
-
エクセルのリストから欠番を拾...
-
Excel 表から値をさがして隣の...
-
ピボットテーブル→参照が正しく...
-
Excelピボットテーブルで 総計...
-
Excelの数式のコピーで列移動で...
-
エクセルVBAで、行コピーを複数...
-
エクセルの列幅
-
エクセルの関数の使い方 繰越...
-
Excelで検索結果をテキストボッ...
-
エクセルで各ページに同じ文書...
-
エクセル シートのコピーをリ...
-
VBA csvを100万行ずつ各...
-
地番を順に並べたい。
-
エクセルに詳しい方、助けてく...
おすすめ情報