質問編集履歴
1
書式の改善、画像の挿入
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
vlookupでの範囲を別シートにすると『実行時エラー '1004' :WorkSheetFunction クラスの VLookup プロパティを取得できません。』が発生
|
body
CHANGED
@@ -5,11 +5,7 @@
|
|
5
5
|
|
6
6
|
"ドロップダウンリスト参照"のシートには、名前定義した"examplelist"、"ドロップダウンリスト"のシートで果物名がドロップダウンリストになっているので選択すると、それに対応する番号が入力される想定。
|
7
7
|
"examplelist"
|
8
|
-
1 リンゴ
|
9
|
-
2 バナナ
|
10
|
-
3 マンゴー
|
11
|
-
4 オレンジ
|
12
|
-
|
8
|
+

|
13
9
|
|
14
10
|
例)ドロップダウンリストで"リンゴ"を選択すると"1"が入力される
|
15
11
|
|
@@ -19,11 +15,15 @@
|
|
19
15
|
|
20
16
|
参考URLだと、一つのシートにドロップダウンリストとドロップダウンリストを作成するためのデータがあるが、作成したいものはドロップダウンリストとドロップダウンリスト作成のための名前定義したセル範囲をそれぞれ別のシートとして扱いたい。
|
21
17
|
vlookup関数で選択した値とそれに紐づく値の切り替えをしたいが、範囲指定がうまくいかず、『実行時エラー '1004' :WorkSheetFunction クラスの VLookup プロパティを取得できません。』が発生して処理が停止する。
|
18
|
+
```ここに言語を入力
|
22
|
-
|
19
|
+
selectedNum = WorksheetFunction.VLookup(selectedNa, tbl, 1, False)
|
20
|
+
```
|
21
|
+
で処理が止まるので、"tbl"に問題がありそう。
|
23
22
|
|
24
23
|
### 該当のソースコード
|
25
24
|
|
26
25
|
(VBA)
|
26
|
+
```ここに言語を入力
|
27
27
|
Private Sub Worksheet_Change(ByVal Target As Range)
|
28
28
|
Dim tbl As Range
|
29
29
|
Set tbl = ThisWorkbook.Worksheets("ドロップダウンリスト参照").Range("examplelist")
|
@@ -38,15 +38,13 @@
|
|
38
38
|
Target.Value = selectedNum
|
39
39
|
End If
|
40
40
|
End If
|
41
|
+
```
|
41
42
|
End Sub
|
42
43
|
|
43
44
|
### 試したこと
|
44
45
|
|
45
46
|
ローカルウィンドウで式を見たところ、以下のようになった。
|
46
|
-
+ : tbl : : Range/Range
|
47
|
-
: selectedNa : "マンゴー" : Variant/String
|
48
|
-
|
47
|
+

|
49
|
-
|
50
48
|
WorksheetFunction.VLookupをapplication.vlookupに変更してみた。
|
51
49
|
|
52
50
|
### 補足情報(FW/ツールのバージョンなど)
|