【发布时间】:2016-03-09 12:46:05
【问题描述】:
我为我的问题找到了this solution。它像这样工作正常:
Dim CNPJs As New Collection, a
Dim i As Long
Dim rng As Range
U_L = Plan2.Range("A" & Rows.Count).End(xlUp).Row
On Error Resume Next
For Each rng In Plan2.Range("A2:A" & U_L)
CNPJs.Add rng.value, rng.value
Next
但是现在我想构建一个返回这个唯一数组的函数,因为我会多次使用这个......我试过这个:
Public Function unArray(myRange As Range) As Collection
Dim arr As Collection, a
On Error Resume Next
For Each rng In myRange
arr.Add rng.value, rng.value
Next
unArray = arr
End Function
我称之为:
Sub test()
Dim CNPJs As New Collection, a
U_L = Plan2.Range("A" & Rows.Count).End(xlUp).Row
CNPJs = unArray(Plan2.Range("A2:A" & U_L))
End Sub
但它返回此错误:
你能帮帮我吗?
【问题讨论】:
-
我不是 100% 确定,但我认为您需要使用
Set。Set CNPJs = unArray(Plan2.Range("A2:A" & U_L))... 函数中的集合也使用New... -
有效!!!谢啦!我还必须在这里使用
Set:Set unArray = arr。请张贴作为答案,我会接受的。 -
我现在正在打电话。但是需要解释为什么要发布合适的答案......也许稍后......不过,我不介意这些要点。你让它工作,这对我来说很重要;)
-
好的,但我需要选择一个答案,请发布:)
标签: arrays excel vba function return