使用VBA for Excel创build,填充和删除数组或字典中的条目

我是VBA的新手,但是我花了足够的时间寻找一些代码来帮助解决我的情况,如下所示:

为了简单起见,我将用一个例子来说明我想要完成的事情:

假设我有一堆具有唯一编号的弹珠,我想将它们放入编号的类别中。

例如:

在“时间”1.0“”大理石“1”“被分类为”组“1”“   
在“时间”2.0“”“大理石”2“”被分类“为”组“2”“等 
在“时间”3.0“”大理石“1”“被分类为”组“3”“

因此在3.0时间大理石1被分类为组1和组2。

我创造了一个button,让我进入“大理石#”和“时间”,并报告是否在给定的时间大理石分类,如果是的话,什么组,如果不是最后一组是什么。

当大理石只被分类到1组时,这很好地工作,但是当大理石被分类到多个组,然后从其中一个组中被移除的情况下,

…………在“时间”4.0“”“大理石”1“”是“未分类”从“组”1“”

我的有限的代码将删除任何分类logging,并简单地报告最近的分类为“最后一个类别”即

大理石#= 1,时间= 5.0结果=“未分类”最后类别=“组”1“”实际上,它仍然是“分类”为“组”2“”。

总之,我需要一个代码,让我进入“大理石#”和“时间”,并告诉我,如果在那个特定的时间,“大理石”是“分类”,如果是的话,“组”是“分类”如果不是那么最后的“分类”是什么。

我已经发布了我的代码如下。 。 请记住,这是我的第一个VBA代码,并且已经通过Googlesearch和试用和错误的方式进行了authentication。 。 。 * (注意单元格(15,8)和单元格(18,8)分别是“input大理石#”和“input时间”) * (第1,2,3,4列是大理石#,分类,组#和时间分别) * *

 Private Sub CommandButton2_Click()
昏暗分类为string,我作为整数,组作为整数

 Count = Application.CountA(Range(“A:A”))

对于我= 1来计数 

    如果单元格(i,1).Value =单元格(15,8)和单元格(i,4)。值<=单元格(18,8)和单元格(i,2)=“CATEGORIZE”,那么Categorized =“CATEGORIZED” 

    如果单元格(i,1)。值=单元格(15,8)和单元格(i,4)。值<=单元格(18,8)和单元格(i,2)=“UNCATEGORIZE”,那么Categorized =“NOT CATEGORIZED “

    如果单元格(i,1).Value =单元格(15,8)和单元格(i,4)。值<=单元格(18,8)和单元格(i,2)=“CATEGORIZE” 3)

接下来我

    如果分类=“分类”然后MsgBox分类和“分类到”与组
    如果Categorized =“NOT CATEGORIZED”然后Msgbox分类和“最后被分类到”&组
    如果分类=“”然后Msgbox“大理石在此之前不存在”

结束小组

此外,在不同的时间有多个重复的条目,即

在“时间”1.0“”大理石“1”“被分类为”组“1”“
在“时间”1.1“”“大理石”1“”被分类为“组”1“” 
在“时间”1.4“”大理石“1”“被分类为”组1“”

重复“分类”的数量不关心我是“分类”还是“未分类”。 。 。 (不pipe你按了多less次“开”button,如果你按下“关”button,灯熄灭:))

非常感谢您的帮助。 请保持批评build设性,因为我已经提到这是我的第一个VBA代码。 谢谢。