很多道歉,如果这已被回答,但我一直无法找到答案在这里,或谷歌的事。我使用Excel,所以我将引用列/行。填充动态数组与未知的字符串
我需要建立一个成本分析表一对夫妇像条件:
- 什么类别? (全部列表:水果,蔬菜,肉类)
- 什么供应商是该项目购买? (即索贝的,沃尔玛等)
所以,我有:
Dim catFruits() as string, catVegies() as string, catMeats() as string
到每个类别的声明阵列。我把它放在每行的“Category”列下,并检查类别以选择正确的数组。我希望接下来要做的是沿着“供应商”一行一行地将单元格的内容添加到选定的数组中,但如果供应商已经在数组中,则不会。我一直无法找到办法做到这一点。我到目前为止:
For x = 1 To lastRow
If Sheet1.Cells(x, catCol).Text = "Fruits" Then
catFruits() = Array(Sheet1.Cells(x, supCol).Text)
'|----------what I want to do----------|
catFruits() = Array(catFruits(), Sheet1.Cells(x,SupCol).Text)
'so it's like "x = x + 1"
'|-----but in a way that will work-----|
'|----------and without dupes----------|
ElseIf Sheet1.Cells(x, catCol).Text = "Vegetables" Then
catVegies() = Array(Sheet1.Cells(x, supCol).Text)
ElseIf Sheet1.Cells(x, catCol).Text = "Meats" Then
catMeats() = Array(Sheet1.Cells(x, supCol).Text)
End If
Next x
我可以找出自己的重复部分,只是另一个循环,如果可以解决这个问题。
请放心,我正在使用的所有变量已被正确声明(除了数组,我不熟悉使用它们),并使用Option Explicit。
如果您需要任何其他信息,只是问,我会尽我所能帮助。
+1唯一性是字典可以做的伟大事情之一 – psubsee2003
您可以在不添加引用的情况下创建字典,只需将其声明为对象,然后使用'CreateObject(“Scripting.Dictionary”)''。您也可以使用字典来实际统计每个供应商的出现次数,这可能稍后会变得很方便。 – martin
更好 - 词典词典:当您添加新类别时,无需更改您的代码... –