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

回答編集履歴

1

追記

2021/04/03 09:57

投稿

jinoji
jinoji

スコア4592

answer CHANGED
@@ -1,1 +1,31 @@
1
- このコードにおいて ws はVariant(実質String)であってWorksheet型ではない、ということでは。
1
+ このコードにおいて ws はVariant(実質String)であってWorksheet型ではない、ということでは。
2
+
3
+ ```VBA
4
+ Sub データ戻す用()
5
+
6
+ With Workbooks("A.xlsm").Worksheets(2)
7
+ Dim k As Variant, o As Range, v As Variant
8
+ k = .Range("A2:A100001").Value
9
+ Set o = .Range("L2:L100001")
10
+ v = o.Value
11
+ End With
12
+
13
+ With Workbooks.Open("B.xlsx")
14
+ Dim n As Variant, w As Worksheet, s As Variant, i As Long
15
+ For Each n In Array("aa", "bb", "cc", "dd", "ee", "ff")
16
+ Set w = .Worksheets(n)
17
+ 'w.ShowAllData
18
+ s = w.Range("A2:Q100001").Value
19
+
20
+ For i = 1 To UBound(k, 1)
21
+ v(i, 1) = WorksheetFunction.VLookup(k(i, 1), s, 17, False)
22
+ Next i
23
+ Next n
24
+ '.Close False
25
+ End With
26
+
27
+ o.Value = v
28
+
29
+ End Sub
30
+
31
+ ```