発注と納品の確認マクロを作成しました。
Sheet1の列を検索して、Sheet2にあればその数字のあるセルを赤くするのですが、
それを以下のように変更することは可能でしょうか?
Sheet1の列を検索して、Sheet2にあれば、Sheet2上でその数字をカットして隣のB列に上から順番にペーストします。
宜しくお願いします。
Sub 発注と納品の確認マクロ()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim myRange1 As Range
Dim myRange2 As Range
Dim c1 As Range
Dim c2 As Range
Dim myCt As Long
Set Ws1 = Worksheets("Sheet1")
Set Ws2 = Worksheets("Sheet2")
Set myRange1 = Ws1.Range("A1", Ws1.Cells(Rows.Count, "A").End(xlUp))
Set myRange2 = Ws2.Range("A1", Ws2.Cells(Rows.Count, "A").End(xlUp))
For Each c1 In myRange1
myCt = 0
For Each c2 In myRange2
If c2.Value = c1.Value Then
If myCt = 0 Then
c2.Interior.ColorIndex = 3
Else
c2.Interior.ColorIndex = 43
End If
myCt = myCt + 1
End If
Next c2
If myCt = 0 Then c1.Interior.ColorIndex = 6
Next c1
Set Ws1 = Nothing
Set Ws2 = Nothing
Set myRange1 = Nothing
Set myRange2 = Nothing
End Sub
No.3ベストアンサー
- 回答日時:
回答2、myRangeです。
間違いあり。
'------------------------------------
Sheet1のA列には、空白もある
Sheet2のA列には、ダブりもある
という条件であれば次のようになります。
'-------------------------------------------
Sub 発注と納品の確認マクロ()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim myRange1 As Range
Dim myRange2 As Range
Dim c1 As Range
Dim c2 As Range
Dim myCt As Long
Dim MoveRow As Long
Set Ws1 = Worksheets("Sheet1")
Set Ws2 = Worksheets("Sheet2")
Set myRange1 = Ws1.Range("A1", Ws1.Cells(Rows.Count, "A").End(xlUp))
Set myRange2 = Ws2.Range("A1", Ws2.Cells(Rows.Count, "A").End(xlUp))
For Each c1 In myRange1
myCt = 0
If c1.Value <> "" Then
For Each c2 In myRange2
If c2.Value <> "" And c2.Value = c1.Value Then
If myCt = 0 Then
MoveRow = MoveRow + 1
c2.Cut Ws2.Cells(MoveRow, "B")
Else
c2.Interior.ColorIndex = 43
End If
myCt = myCt + 1
End If
Next c2
If myCt = 0 Then
c1.Interior.ColorIndex = 6
End If
End If
Next c1
End Sub
'----------------------------------------
以上です。
No.2
- 回答日時:
下記●●のコードを修正加筆。
'-----------------------------------
Sub 発注と納品の確認マクロ()
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim myRange1 As Range
Dim myRange2 As Range
Dim c1 As Range
Dim c2 As Range
Dim myCt As Long
Dim MoveRow As Long '●●
Set Ws1 = Worksheets("Sheet1")
Set Ws2 = Worksheets("Sheet2")
Set myRange1 = Ws1.Range("A1", Ws1.Cells(Rows.Count, "A").End(xlUp))
Set myRange2 = Ws2.Range("A1", Ws2.Cells(Rows.Count, "A").End(xlUp))
For Each c1 In myRange1
myCt = 0
For Each c2 In myRange2
If c2.Value = c1.Value Then
If myCt = 0 Then
MoveRow = MoveRow + 1 '●●
c2.Cut Ws2.Cells(MoveRow, "B") '●●
Else
c2.Interior.ColorIndex = 43
End If
myCt = myCt + 1
End If
Next c2
If myCt = 0 Then c1.Interior.ColorIndex = 6
Next c1
Set Ws1 = Nothing
Set Ws2 = Nothing
Set myRange1 = Nothing
Set myRange2 = Nothing
End Sub
'------------------------------------
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
桁数が混在する並び替えの方法
-
エクセルVBA Unionはなぜ遅い?
-
エクセルで一部除外した数字を...
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルで2列を検索し2列とも...
-
エクセルで同じ名前ごとの合計...
-
ExcelVBA:列方向の並び替え O...
-
エクセル マクロで列を連続し...
-
エクセルvba 一つ上の行を指定...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
Excelで行ごとコピー、同じ行を...
-
エクセル
-
Excelの関数について、特定の文...
-
エクセルでグラフタイトルが折...
-
【Excel】貼り付けた画像がいつ...
-
エクセルにおける、グラフの指...
-
C+vのvは英語で何の頭文字...
-
塗りつぶしの色をコピーするには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル 指定した文字列を含...
-
桁数が混在する並び替えの方法
-
EXCEL VBA 指定範囲内で特定の...
-
エクセルVBA Unionはなぜ遅い?
-
エクセルで同じ名前ごとの合計...
-
エクセルの関数SUBSTITUTEを、...
-
エクセルで一部除外した数字を...
-
エクセル VLOOKUPが反映されない
-
エクセルで2列を検索し2列とも...
-
Excelで自動的に並べ替えなんて...
-
ExcelVBA:列方向の並び替え O...
-
エクセルで列内の同じIDの商品...
-
エクセルvba 一つ上の行を指定...
-
エクセル マクロで列を連続し...
-
EXCELである列を上から順にチェ...
-
エクセルマクロでA欄に値があ...
-
VBAでFormula関数を使ってVlook...
-
エクセルの質問(結合と集計に...
-
エクセルで合算後の降順がうま...
-
アクティブセルのある行の任意...
おすすめ情報