teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

A1~D10000 → A2~A10000 に修正

2020/11/30 07:46

投稿

usaginote1020
usaginote1020

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- エクセルVBAで、ワークシートws.allのA4D10000の値が、
3
+ エクセルVBAで、ワークシートws.allのA2A10000の値が、
4
- ワークシートws.listのA11000にない新規の値であった場合、ワークシートws.allのB列に「新」と入力するマクロを作りたい
4
+ ワークシートws.listのA2A1000にない新規の値であった場合、ワークシートws.allのB列に「新」と入力するマクロを作りたい
5
5
 
6
6
 
7
7
  ### 発生している問題・エラーメッセージ

1

コードの挿入で記入しました。リストの表現が不明確でしたので、質問を書き直しました。

2020/11/30 07:46

投稿

usaginote1020
usaginote1020

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,21 +1,22 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
+ エクセルVBAで、ワークシートws.allのA4~D10000の値が、
3
- セルVBAで、リスA(all)の値が、リストB(list)にない新規の値であった場合、リスAに「新」と入力するマクロを作りたい
4
+ ワーシーws.listのA1~1000にない新規の値であった場合、ワークシーws.allのB列に「新」と入力するマクロを作りたい
4
5
 
6
+
5
7
  ### 発生している問題・エラーメッセージ
6
8
 
7
9
  リストにある場合、「すでに有り」と入力するマクロは作ることができたが、ない場合「新」とすることに苦労している
8
10
 
9
11
  ### 該当のソースコード
12
+ ```
13
+ For i = 2 To 10000
14
+ For j = 2 To 1000
10
15
 
11
- For i = 2 To lastrow_all
16
+ If ws_all.Cells(i, 1).Value = ws_list.Cells(j, 1).Value Then
12
17
 
13
- For j = 2 To lastrow_list
18
+ ws_all.Cells(i, 2) = "すでに有り"
14
19
 
15
- If ws_all.Cells(i, 4).Value = ws_internal.Cells(j, 1).Value Then
16
-
17
- ws_all.Cells(i, 22) = "すでに有り"
18
-
19
20
  Exit For
20
21
 
21
22
  Else
@@ -28,6 +29,8 @@
28
29
 
29
30
  Next i
30
31
 
32
+ ```
33
+
31
34
  ### 試したこと
32
35
 
33
36
  リストが数十万行であり、ほとんどがリストBにあるためExit for でループを抜けることで