Excel 从变量列表VBA中删除重复项

Excel 从变量列表VBA中删除重复项,excel,vba,Excel,Vba,我有一个变量列表(长) 它们的名称为Or1到Or100。 所有这些都是通过从Excel电子表格的范围中随机选取一个单元格来设置的 每个OR也有一个布尔值,设置为Or1x到or100x。如果存在重复值,则该布尔值应为真。如果Or1与or67相同,则or1x和or67x均为真。到目前为止,我知道如何做到这一点的唯一方法是使用if语句数组。问题是这太长,太慢了。这里还有其他智能解决方案吗 最简单和通用(不是最快)的方法是使用字典来计算元素 set dict=createobject("Scriptin

我有一个变量列表(长)

它们的名称为Or1到Or100。 所有这些都是通过从Excel电子表格的范围中随机选取一个单元格来设置的


每个OR也有一个布尔值,设置为Or1x到or100x。如果存在重复值,则该布尔值应为真。如果Or1与or67相同,则or1x和or67x均为真。到目前为止,我知道如何做到这一点的唯一方法是使用if语句数组。问题是这太长,太慢了。这里还有其他智能解决方案吗

最简单和通用(不是最快)的方法是使用字典来计算元素

set dict=createobject("Scripting.Dictionary")
for i=1 to 100
  dict(Or(i))=dict(Or(i))+1
next
for i=1 to 100
  Orx(i)=(dict(Or(i))>1)
next

(我假设Or和Orx是数组。)

请给我们看一下您的“慢”代码。如果or1=or2,则or1x=true或2X=true,否则结束。那个么你们在哪里使用数组呢?在你们的问题中,而不是在评论中,把你们的完整代码正确地格式化。