回復 2#Hsieh
謝謝Hsieh超級版大
我用傳統一歩一歩來用了50多行效果不好
因不會用Scripting.Dictionary
可否賜教以下不懂之處
1. Set d = CreateObject("Scripting.Dictionary")
With Workbooks("1.xls").Sheets(3)
For Each A In .Range(.[C2], .[C65536].End(xlUp))
d(A & "") = Array(A.Offset(, 3).Value, A.Offset(, 4).Value, A.Offset(, 6).Value)
next
其中 d(A & "") 為何要 &""
2. With Workbooks("2.xls").Sheets(5)
For Each A In .Range(.[B2], .[B65536].End(xlUp))
A.Offset(, 1).Resize(, 3).Value = d(A & "")
Next
End With
何處得知是找相同資料條件?是否 A 之故?或是Dictionary之故?
3. 若貼上之處非相連之儲存格,則A.Offset(, 1).Resize(, 3).Value = d(A & "")
應如何修正?
十分感激 收穫頗多作者: Hsieh 時間: 2012-9-3 18:16
回復 7#Hsieh
問題解決了
自行加入d1( )
然後
ReDim Preserve d1(i - 1)
d1(i - 1) = a.Offset(, n1(i) - default1).Value '增加items
結果順利
Set d = CreateObject("Scripting.Dictionary")
With Workbooks(str1).Sheets(sh1)
For Each a In .Range(.Cells(2, default1), .Cells(65536, default1).End(xlUp))
Dim d1()
d1 = Array(a.Offset(, n1(1) - default1).Value)
If s1 > 1 Then
For i = 2 To s1
ReDim Preserve d1(i - 1)
d1(i - 1) = a.Offset(, n1(i) - default1).Value
Next
End If
d(a & "") = d1
Next
End With
供大家參考指教
綜合多天來 在各帖指導
謝謝 Kimbal & Hsieh & GBKEE 三位大大