回答編集履歴

2

説明追記

2021/10/23 01:50

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -23,3 +23,35 @@
23
23
  Cells(i, 3).Formula = "=VLookup(B" & i & ", " & ws.Name & "!B4:C" & 元データLast_Row & ", 2, False)"
24
24
 
25
25
  ```
26
+
27
+
28
+
29
+ おまけ
30
+
31
+ ---
32
+
33
+
34
+
35
+ ```vba
36
+
37
+ For i = 3 To Last_Row
38
+
39
+ Cells(i, 3).Formula = "=VLookup(B" & i & ", " & ws.Name & "!B4:C" & 元データLast_Row & ", 2, False)"
40
+
41
+ Next
42
+
43
+ ```
44
+
45
+ というようにループしなくても、セル範囲に一気に式を設定することもできます。(こちらの方が高速)
46
+
47
+
48
+
49
+ ```vba
50
+
51
+ Range(Cells(i, 3), Cells(i, Last_Row)).Formula = "=VLookup(B3, " & ws.Name & "!#B#4:#C#" & 元データLast_Row & ", 2, False)"
52
+
53
+ ```
54
+
55
+
56
+
57
+ 先頭セルに式を設定して、フィルドラッグで式をコピーするのと同じ意味になります。

1

説明追記

2021/10/23 01:50

投稿

hatena19
hatena19

スコア34075

test CHANGED
@@ -13,3 +13,13 @@
13
13
 
14
14
 
15
15
  引用符を一つ追加します。
16
+
17
+ これだけでは値は表示されないので、ws.Name を""の外にだします。""内だとただの文字列。
18
+
19
+
20
+
21
+ ```vba
22
+
23
+ Cells(i, 3).Formula = "=VLookup(B" & i & ", " & ws.Name & "!B4:C" & 元データLast_Row & ", 2, False)"
24
+
25
+ ```