从 VBA 组合框中删除重复项
这就是我想做的......我在一张纸上列出了一大堆东西。我想将所有这些(假设是名称)名称添加到 VBA 组合框,但我只想要唯一的记录。我也想对它们进行排序。
我知道如果我在 Excel 中排序并删除重复项,我可以做到这一点...但我想从 VBA 中删除它,而不更改 Excel 中的数据。
是否可以?
Here's what I want to do... I have a big list of stuff in a sheet. I want to add all those (let's say are names) names to a VBA combobox but I want only unique records. I also want to sort them.
I know that I can do that if I sort and remove the duplicates in Excel... but I want to o it from VBA without altering the data in Excel.
Is it possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
仅添加独特的项目:
找到此代码:
Only add unqiue items:
Found this code:
我已经测试了组合框中的代码排序和删除重复项。添加所有项目后,它会对组合框列表进行操作。可以使用范围或文件等来将项目添加到组合框,下面只是一个示例。
主要部分是排序功能。
要记住的一件事是,两个函数的对象参数都是通过引用传递的,因此在调用时不要像这样使用括号(当我这样做时,我得到了“需要对象”错误):
现在这是我们的排序函数。我使用 Do-Loop 语句,因为删除重复项时 ListCount 属性可能会更改值。
I have tested code sorting and removing duplicates in a combobox. It operates on combobox list after all items are added. Adding items to the combobox may be performed using range or file etc, below is just an example.
The main part is the sorting function.
One thing to remember, both functions' object arguments are passed by reference so when calling don't use brackets like so (I got 'Object Required' error when I did):
Now this is our sorting function. I used Do-Loop statement because ListCount property may change value when duplicates are removed.
这可以非常轻松地删除重复项,首先加载组合列表,例如:
现在您可以消除重复项:
This can remove duplicates very easily, first load the combolist, as an axample:
And now you can eliminate the duplicates: