使用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代码。 谢谢。