VBA - 将GetUniques更改为允许重复

时间:2015-06-05 13:03:07

标签: excel vba excel-vba

我正在循环浏览一个文件夹,该文件夹打开许多文件并将数据输入到主表中。

它目前运行良好,除了现在我需要代码允许重复,我一直在使用GetUniques函数。我该如何解决这个问题?

GetUnique位于第3,4节,功能位于第8位。

这是我的代码,如果这对你有帮助的话。感谢您提供任何指导!

field.addClass("x-form-invalid")
field.markInvalid("Hey dude, what are you doing?");

1 个答案:

答案 0 :(得分:3)

我会说最简单的修复方法是将GetUniques()函数从当前更改为:

Function GetUniques(ch As Range) As Object
    Dim dict As Object, rng As Range, c As Range, v
    Set dict = New Collection
    For Each c In ch.Parent.Range(ch, ch.Parent.Cells(Rows.count, ch.Column).End(xlUp)).Cells
        v = Trim(c.Value)
        If Len(v) > 0 Then
            dict.Add v
        End If
    Next c
    Set GetUniques = dict
End Function

也就是说,您的GetUniques()函数不再获取唯一值,因此应该重命名,并且应调整所有调用以调用新函数名称。

这也不是最优雅的解决方案,因为我相信你应该能够简单地将传递到GetUniques的范围添加到你的目的地,但我今天早上没有很好地解析你的代码来识别必要的全套变更。我建议让代码使用函数调用,然后您可以在Code Review上发布有关改进功能代码的提示。