Arrays 从一列值构建数组

Arrays 从一列值构建数组,arrays,excel,vba,Arrays,Excel,Vba,我有一个项目,在这个项目中,我将列出一份飞机清单,并将其名称标准化(即C-206T、C206、C-206都是C-206等)。我工作表中的B列列出了所有需要标准化的飞机类型。共有3353行数据。我试图将该列中的所有唯一名称放入一个数组,然后将该数组转储到另一个工作表中使用的列中,以便为它们指定标准化名称 我正在使用以下代码: 小型飞机() 将tmp设置为字符串 Dim arr()作为字符串 变暗细胞 Dim ArrayCount为整数 我想我会坚持多久 暗淡的货币如长 工作表(“导入的时间”)。

我有一个项目,在这个项目中,我将列出一份飞机清单,并将其名称标准化(即C-206T、C206、C-206都是C-206等)。我工作表中的B列列出了所有需要标准化的飞机类型。共有3353行数据。我试图将该列中的所有唯一名称放入一个数组,然后将该数组转储到另一个工作表中使用的列中,以便为它们指定标准化名称

我正在使用以下代码:


小型飞机()
将tmp设置为字符串
Dim arr()作为字符串
变暗细胞
Dim ArrayCount为整数
我想我会坚持多久
暗淡的货币如长
工作表(“导入的时间”)。选择
列(“B”)。选择
Selection.NumberFormat=“@”
如果不是的话,选择什么都不是
对于选择中的每个单元格
如果(单元格“”)和(仪表(tmp,单元格)=0),则
tmp=tmp&单元&“|”
如果结束
下一个细胞
如果结束
如果Len(tmp)>0,则tmp=Left(tmp,Len(tmp)-1)
arr=拆分(tmp,“|”)的
对于i=LBound(arr)到UBound(arr)
如果(arr(i)“”),则
ArrayCount=ArrayCount+1
如果结束
接下来我
工作表(“飞机”)。选择
Range(“B1:B”和ArrayCount)=Application.Transpose(arr())
端接头
原始列表中的某些条目没有进入第二个工作表。例如,C-206T和C206在那里,但C-206不在那里。另一个例子——C-172RG列出了清单,但C-172没有

我认为这与was InStr比较字符串有关,但我就是搞不清楚,几个小时的互联网搜索也没有帮助


提前感谢您提供的任何帮助

显然,这与temp变量的字符长度限制有关。
尝试使用|将结果直接放入数组中,然后进行拆分。

这里的“正常”方法是使用
脚本.字典
获取唯一项。一个导致问题的数据集,作为文本发布,以及您所需的输出,将对您有所帮助。检查。模糊匹配可能会更好地满足您的需要。您测试列表中是否已有条目的方法会进行部分匹配。例如
C-172
匹配
C-172RG
。如果您有Excel 365,则可以使用
UNIQUE
功能在不使用vba的情况下执行此操作