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

回答編集履歴

2

説明追記

2021/10/23 01:50

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -10,4 +10,20 @@
10
10
 
11
11
  ```vba
12
12
  Cells(i, 3).Formula = "=VLookup(B" & i & ", " & ws.Name & "!B4:C" & 元データLast_Row & ", 2, False)"
13
- ```
13
+ ```
14
+
15
+ おまけ
16
+ ---
17
+
18
+ ```vba
19
+ For i = 3 To Last_Row
20
+ Cells(i, 3).Formula = "=VLookup(B" & i & ", " & ws.Name & "!B4:C" & 元データLast_Row & ", 2, False)"
21
+ Next
22
+ ```
23
+ というようにループしなくても、セル範囲に一気に式を設定することもできます。(こちらの方が高速)
24
+
25
+ ```vba
26
+ Range(Cells(i, 3), Cells(i, Last_Row)).Formula = "=VLookup(B3, " & ws.Name & "!#B#4:#C#" & 元データLast_Row & ", 2, False)"
27
+ ```
28
+
29
+ 先頭セルに式を設定して、フィルドラッグで式をコピーするのと同じ意味になります。

1

説明追記

2021/10/23 01:50

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -5,4 +5,9 @@
5
5
  + Cells(i, 3).Formula = "=VLookup(B" & i & ", ws.Name!B4:C" & 元データLast_Row & ", 2, False)"
6
6
  ```
7
7
 
8
- 引用符を一つ追加します。
8
+ 引用符を一つ追加します。
9
+ これだけでは値は表示されないので、ws.Name を""の外にだします。""内だとただの文字列。
10
+
11
+ ```vba
12
+ Cells(i, 3).Formula = "=VLookup(B" & i & ", " & ws.Name & "!B4:C" & 元データLast_Row & ", 2, False)"
13
+ ```