
よろしくお願いします。
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ランキング
-
フィルターかけた後、重複を除...
-
サンプルコードの丸暗記学習に...
-
1日に1人がこなせるプログラム...
-
Outlook VBAについて
-
変数名「cur」について
-
Javaの改行について
-
ASP.NETのSiteMapPathについて
-
IEEE802.3
-
Exel VBA 別ブックから該当デ...
-
こんばんは。COBOLを初めて学ん...
-
文字列を検索しその列をコピー...
-
【VB6】実行ファイルとした後、...
-
VBA 現在のセル番地を記憶、復...
-
JANコードとPOSコードは同じ?
-
access2003 クエリSQL文に...
-
エクセルで重複しない値を作成...
-
木偏に「久」
-
COBOLの文法
-
◾️Excel VBA 統合について Cons...
-
Nullの使い方が不正です。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
JavaScriptの定数名が取り消し...
-
access2021 VBA メソッドまたは...
-
JANコードとPOSコードは同じ?
-
PreviewKeyDownイベントが2回...
-
エクセルに見えない文字(JISX0...
-
オートフィルタで抽出結果に 罫...
-
Excelシート上で右クリックがで...
-
Exel VBA 別ブックから該当デ...
-
access2003 クエリSQL文に...
-
変数名「cur」について
-
Nullの使い方が不正です。
-
【VB6】実行ファイルとした後、...
-
VBAでファイルオープン後にコー...
-
COBOLの文法
-
Accessでの抽出で完全一致。
-
AccessでReplace関数を使うときに…
-
Access DCountでの連番について
-
sinカーブの表示のさせ方
おすすめ情報