よろしくお願いします。
OS:WINDOWS 2000 PRO
環境:OFFICE 2003
エクセルのVBAについての質問です。
A列には数値コードが入っています。
そのコードは"1"と"2"に分類されてます。
マスターはSHEET1で、このマスターから
コード1はSHEET2に、
コード2はSHEET3に
振り分けたいのですが、どうもうまくいきません・・・
A列にはコード"1" "2"以外に空白セルが存在します。
空白セルは無視したい。。。
それとこのデータはDBから抽出するのですが、
抽出したデータは規則性はありません。
抽出するごとに"1"と"2"と"空白"はランダムなので、
LOOP等のマクロを調べてやってみたのですが、出来なくて週末になってしまいました。
A列からコード1とコード2を検索して、
ヒットしたコードの行ごと各SHEETにコピーして、
なおかつ各シートA列の入力されていない一番下の
セルにコピーしたいのですが、検索でヒットした
上から順番に。。。
これをLOOPと組合わせれば、各シートにコピーするのは
問題ないような気がします。。。
Sub AAA_BBB()
.Copy Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0)
End With
End Sub
LOOP等で上記の条件を満たせる方法はないでしょうか。
ご教示を、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
For -Eachを使ってやってみました。
各シートの1行目はタイトル行になっているものとします。
Sub test()
Dim rng As Range
With Sheets("SHEET1")
For Each rng In _
Range(.Cells(1, 1), .Cells(.Range("A65536").End(xlUp).Row, 1))
If rng.Text = "コード1" Then
rng.EntireRow.Copy _
Sheets("SHEET2").Range("A65536").End(xlUp).Offset(1)
ElseIf rng.Text = "コード2" Then
rng.EntireRow.Copy _
Sheets("SHEET3").Range("A65536").End(xlUp).Offset(1)
End If
Next
End With
End Sub
No.2
- 回答日時:
こんばんは。
タイトル行は、Sheet1, Sheet2, Sheet3 にあるという前提にしないと、このコードはうまく行きません。最初のマスターのシートは、オートフィルタを使って抽出しています。これで参考にしてみてください。なお、コードは、myCodeのところを増やし、myShtsの中も、同じ数だけシートも増やせば、さらに増えても、ループは可能です。
'-----------------------------------------
Sub Sort_OtherSheetPaste()
Dim myShts() As Variant
Dim myCode() As Variant
Dim i As Integer
myCode = Array("1", "2") 'コード
myShts = Array("Sheet2", "Sheet3") 'ペーストされるシート
Application.ScreenUpdating = False
'マスターのシート
With Worksheets("Sheet1").Range("A1").CurrentRegion
For i = LBound(myCode()) To UBound(myCode())
.CurrentRegion.AutoFilter Field:=1, Criteria1:=myCode(i)
.Offset(1).Resize(.Rows.Count - 1).Copy Worksheets(myShts(i)).Range("A65536").End(xlUp).Offset(1)
Next i
.AutoFilter
End With
Application.ScreenUpdating = True
End Sub
なお、マクロの実行のダブりの検査は、現在のコードではなされていません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) 集計シートA列のコードと一致する右に並んだシート名(コード)の3行目から10行目をコピーして貼り付け 4 2022/08/18 15:24
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Excel(エクセル) 指定文字列が該当するA列をアクティブセルにするには 3 2022/08/17 13:18
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
EXCEL VBAで文字列の検索とコピー
Excel(エクセル)
-
VBAで検索して、行をコピー&追加したい
Excel(エクセル)
-
-
4
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
5
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
6
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
7
【VBA】特定列に文字が入っていたらそのセル行をコピーしてマスターブックの同じ行に貼り付けたい
その他(Microsoft Office)
-
8
VBA コピーして次の値まで貼り付けを繰り返す
Visual Basic(VBA)
-
9
【VBA】シート名と見出しが一致する列をコピーする
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
過剰なオブジェクト指向脳から...
-
フィルターかけた後、重複を除...
-
Exel VBA 別ブックから該当デ...
-
1、Rstudioで回帰直線を求める...
-
pythonにてseleniumを使うも、...
-
変数名「cur」について
-
VB6で読み上げをしたい
-
PreviewKeyDownイベントが2回...
-
VB6のComboBox関連の書き方をVB...
-
ユーザーフォームに2つのコン...
-
ユーザーフォームで銀行に対応...
-
chatgptでつくってもらったコー...
-
sinカーブの表示のさせ方
-
access2003 クエリSQL文に...
-
Excel VBAについて
-
Gitのクローンについて
-
ExcelのVBAコードについて教え...
-
python コードについて(初学者...
-
パイソンプログラム
-
COBOLの文法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
Exel VBA 別ブックから該当デ...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
ExcelのVBAコードについて教え...
-
chatgptでつくってもらったコー...
-
欠番の抽出について
-
JANコードとPOSコードは同じ?
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
PreviewKeyDownイベントが2回...
-
将来AIが進歩してくるにつれて...
-
ACCESSユニオンクエリでORDER B...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Nullの使い方が不正です。
おすすめ情報