我是 VBA 新手,但我花了很多时间寻找一些代码来帮助解决我的情况,如下所示:
为简单起见,我将通过一个示例说明我要完成的工作:
假设我有一堆具有唯一编号的弹珠,我想将它们放入编号的类别中。
例如:
在“时间'1.0'”“大理石'1'”被“分类”到“组'1'” 在“时间'2.0'”“大理石'2'”被“分类”到“组'2'”等。 在“时间'3.0'”“大理石'1'”被“分类”到“组'3'”
因此在时间 3.0 Marble 1 被归类为第 1 组和第 2 组。
我创建了一个按钮,允许我输入“Marble #”和“Time”,并报告 Marble 是否在给定时间被分类,如果是,是哪个组,如果不是,它是最后一个组。
当 Marble 仅被分类为 1 组时,这工作得很好,但是当出现 Marble 被分类为多个组然后从其中一个组中删除的情况时,即
............在“时间'4.0'”“大理石'1'”是“组'1'”中的“未分类”
我有限的代码会删除任何分类记录,并简单地将最近的分类报告为“它所在的最后一个分类”,即
大理石 # = 1,时间 = 5.0 结果 = “未分类” 最后一个类别 = “组 '1'” 实际上它仍然“分类”为“组 '2'”。
总之,我需要一个代码,允许我输入“Marble #”和“Time”,并告诉我在那个特定时间“Marble”是否是“Categorized”,如果是,它是哪个“Group”“Categorized”到,如果不是,那么它被“分类”到的最后一个“组”是什么。
我在下面发布了我的代码。. 请记住,这是我的第一个 VBA 代码,它是通过 Google 搜索和反复试验一起被科学怪人发现的。. . * (注意单元格(15,8)和单元格(18,8)分别是“输入大理石编号”和“输入时间”) *(第 1、2、3、4 列是大理石编号、分类、组编号和时间分别)* *
私有子 CommandButton2_Click() Dim 分类为字符串、i 为整数、分组为整数 Count = Application.CountA(Range("A:A")) 对于 i = 1 计数 如果 Cells (i, 1).Value = Cells(15, 8) And Cells (i, 4).Value <= Cells (18, 8) And Cells (i, 2) = "CATEGORIZE" Then Categorized = "CATEGORIZED" 如果 Cells (i, 1).Value = Cells(15, 8) And Cells (i, 4).Value <= Cells (18, 8) And Cells (i, 2) = "UNCATEGORIZE" Then Categorized = "NOT CATEGORIZED " 如果 Cells (i, 1).Value = Cells(15, 8) And Cells (i, 4).Value <= Cells (18, 8) And Cells (i, 2) = "CATEGORIZE" Then Group = Cells(i , 3) 接下来我 If Categorized = "CATEGORIZED" Then MsgBox Categorized & " Categorized to " & Group If Categorized = "NOT CATEGORIZED" Then Msgbox Categorized & " 最后分类到 " & Group If Categorized = "" Then Msgbox "Marble does not exist before this time" 结束子
此外,在不同时间有多个重复条目,即
在“时间'1.0'”“大理石'1'”被“分类”到“组'1'” 在“时间'1.1'”“大理石'1'”被“分类”到“组'1'” 在“时间'1.4'”“大理石'1'”被“分类”到“组'1'”
重复的 "Categorizations" 的数量与我无关,它是 "Categorized" 或 "UnCategorized" 。. . (无论您按“开”按钮多少次,如果您按“关”按钮,灯就会熄灭 :))
非常感谢您的帮助。请保持建设性的批评,因为我已经提到这是我的第一个 VBA 代码。谢谢你。