
いつもお世話になっております。
遣りたいこと
1.A列にあってB列になのものをC列
2.B列にあってA列にないものD列
結果
A列 B列 C列 D列 があります。
1 3 4 1
2 4 5 2
3 5 6
6
下記のコードは検索してためしたものです。
その中で
ここの部分がわかりません。
わかりやすいコーどおしえてくれませんでしょうか
'A列にありB列にないデータを作成
row2 = 2
For Each key In dicA
sh.Cells(row2, 4).Value = key
row2 = row2 + 1
Next
Public Sub データ比較()
Dim row As Long
Dim row2 As Long
Dim dicA As Object '連想配列
Dim key As Variant
Dim sh As Worksheet
Dim time1 As Variant
Dim time2 As Variant
Dim maxrow1 As Long
Dim maxrow2 As Long
time1 = Time
Set dicA = CreateObject("Scripting.Dictionary") ' 連想配列の定義
Set sh = ActiveSheet
maxrow1 = sh.Cells(Rows.Count, 1).End(xlUp).row ' A列最終行を求める
maxrow2 = sh.Cells(Rows.Count, 2).End(xlUp).row ' B列最終行を求める
'A列の連想配列を作成
For row = 2 To maxrow1
key = sh.Cells(row, 1).Value
dicA(key) = row
Next
row2 = 2
For row = 2 To maxrow2
key = sh.Cells(row, 2).Value
If dicA.Exists(key) = True Then
dicA.Remove (key)
Else
sh.Cells(row2, 3).Value = key
row2 = row2 + 1
End If
Next
'A列にありB列にないデータを作成
row2 = 2
For Each key In dicA
sh.Cells(row2, 4).Value = key
row2 = row2 + 1
Next
time2 = Time
MsgBox ("処理完了 所要時間(秒)=" & Second(time2 - time1))
End Sub
No.1ベストアンサー
- 回答日時:
やりたい事と結果が逆に思えるのですが。
Sub megu()
Dim i As Long
Dim n1 As Long
Dim n2 As Long
i = 1
Do Until Cells(i, 1).Value = "" And Cells(i, 2).Value = ""
With WorksheetFunction
If .CountIf(Range("B:B"), Cells(i, 1).Value) = 0 Then
n1 = n1 + 1
Cells(n1, 3).Value = Cells(i, 1).Value
End If
If .CountIf(Range("A:A"), Cells(i, 2).Value) = 0 Then
n2 = n2 + 1
Cells(n2, 4).Value = Cells(i, 2).Value
End If
End With
i = i + 1
Loop
End Sub

めぐみん様
お久しぶりです
東西線です。パスワードわすれて
こういう結果となりました。
また、よろしくお願いいたします。
なんか安心しました。
嬉しいです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
rowsとcolsの意味
-
Excelで、あるセルの値に応じて...
-
Excel VBA_2000ハイパーリンク...
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
VBA 何かしら文字が入っていたら
-
【Excel VBA】カンマと改行コー...
-
VBA: 2列のリストボックスの2列...
-
URLのリンク切れをマクロを使っ...
-
エクセル 2つの表の並べ替え
-
複数の列の値を結合して別の列...
-
Cellsのかっこの中はどっちが行...
-
4月~3月まで12カ月横に並んだ...
-
C# Datagridview 行ヘッダーの...
-
データグリッドビューの一番最...
-
VB2005EE:DataGridViewでチェ...
-
複数csvを横に追加していくマク...
-
VBAで、特定の文字より後を削除...
-
VBAのFind関数で結合セルを検索...
-
C# dataGridViewの値だけクリア
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Cellsのかっこの中はどっちが行...
-
Worksheets メソッドは失敗しま...
-
vba 2つの条件が一致したら...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
VBAのFind関数で結合セルを検索...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
【VBA】2つのシートの値を比較...
-
DataGridViewに空白がある場合...
-
VBAで、特定の文字より後を削除...
-
URLのリンク切れをマクロを使っ...
-
エクセル 2つの表の並べ替え
-
VBAを使って検索したセルをコピ...
-
VBAコンボボックスで選択した値...
-
VBAでのリスト不一致抽出について
-
複数csvを横に追加していくマク...
-
C# dataGridViewの値だけクリア
-
データグリッドビューの一番最...
おすすめ情報