回答編集履歴

1

質問者のコメントに沿って、回答を追加した。

2018/08/23 04:31

投稿

coco_bauer
coco_bauer

スコア6915

test CHANGED
@@ -31,3 +31,69 @@
31
31
  ```
32
32
 
33
33
  に修正してみてください。
34
+
35
+
36
+
37
+
38
+
39
+ == 追記 「現状ではA列のセルの一致だけで新規データかどうかを判断しているが、A列のセルとB列のセルの両方が一致しているものは新規データに追加しないようにしたい」旨のコメントが質問者からあったので、それに対する回答を追加します。 ==
40
+
41
+
42
+
43
+ B列のセルでも一致するかどうかを判断すれば良いのですから、
44
+
45
+ ```ここに言語を入力
46
+
47
+ If x Is Nothing Then
48
+
49
+
50
+
51
+ sh1.Cells(n, "A") = sh2.Cells(i, "A")
52
+
53
+ sh1.Cells(n, "B") = sh2.Cells(i, "B")
54
+
55
+
56
+
57
+ n = n + 1
58
+
59
+
60
+
61
+ End If
62
+
63
+ ```
64
+
65
+ の部分を
66
+
67
+ ```ここに言語を入力
68
+
69
+ If x Is Nothing Then // 過去データのA列に一致するものがない => 新規データに追加する。
70
+
71
+
72
+
73
+ sh1.Cells(n, "A") = sh2.Cells(i, "A")
74
+
75
+ sh1.Cells(n, "B") = sh2.Cells(i, "B")
76
+
77
+
78
+
79
+ n = n + 1
80
+
81
+
82
+
83
+ ElseIf sh1.Cells(n,"B") <> x.Offset(0,1) Then // B列のセルの内容が一致しない => 新規データに追加する。(x.offset(0,1)でxセルの右側のセルを指定したことになる)
84
+
85
+ sh1.Cells(n, "A") = sh2.Cells(i, "A")
86
+
87
+ sh1.Cells(n, "B") = sh2.Cells(i, "B")
88
+
89
+
90
+
91
+ n = n + 1
92
+
93
+
94
+
95
+ End If // 上記の2条件に合わないものは、新規データに追加しない
96
+
97
+ ```
98
+
99
+ のように書き換えれば良いと思います。