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

回答編集履歴

3

コード修正

2021/03/31 13:52

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -27,7 +27,7 @@
27
27
  ```vba
28
28
  Private Sub Worksheet_Change(ByVal Target As Range)
29
29
  '参照先 A列からZ列まで(26列)
30
- Const datalist = ",'C:\Users\博幸\Documents[tera330470_list.xlsx]Sheet1'!$A:$Z"
30
+ Const datalist = ",'C:\test[tera330470_list.xlsx]Sheet1'!$A:$Z"
31
31
  Const colCnt = 26
32
32
  'targetがA列でさらにデータ型が数値だった時
33
33
  If (VarType(Target.Value) = 5 And Target.Column = 1) Then

2

コード追記

2021/03/31 13:52

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -19,4 +19,25 @@
19
19
  End If
20
20
 
21
21
  End Sub
22
+ ```
23
+
24
+ ---
25
+ 項目数が多いときはループにするといいでしょう。
26
+
27
+ ```vba
28
+ Private Sub Worksheet_Change(ByVal Target As Range)
29
+ '参照先 A列からZ列まで(26列)
30
+ Const datalist = ",'C:\Users\博幸\Documents[tera330470_list.xlsx]Sheet1'!$A:$Z"
31
+ Const colCnt = 26
32
+ 'targetがA列でさらにデータ型が数値だった時
33
+ If (VarType(Target.Value) = 5 And Target.Column = 1) Then
34
+ Dim i As Long
35
+ For i = 2 To colCnt
36
+ With Target.Offset(, i - 1)
37
+ .Formula = "=VLOOKUP(" & Target.Address & datalist & "," & i & ",FALSE)"
38
+ .Value = .Value
39
+ End With
40
+ Next
41
+ End If
42
+ End Sub
22
43
  ```

1

コード修正

2021/03/31 13:21

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -10,7 +10,6 @@
10
10
 
11
11
  With Target.Offset(, 1)
12
12
  .Formula = "=VLOOKUP(" & Target.Address & datalist & ",2,FALSE)"
13
- Debug.Print .Value
14
13
  .Value = .Value
15
14
  End With
16
15
  With Target.Offset(, 2)