我是VBA的新手,但我花了很多时间寻找一些代码来帮助解决我的情况,如下所示:
为简单起见,我将用一个例子说明我想要完成的事情:
假设我有一堆带有唯一编号的弹珠,我想把它们放在编号类别中。
例如:
At "Time '1.0'" "Marble '1'" is "Categorized" into "Group '1'" At "Time '2.0'" "Marble '2'" is "Categorized" into "Group '2'" etc. At "Time '3.0'" "Marble '1'" is "Categorized" into "Group '3'"
因此,在时间3.0,大理石1被分类为组1和组2。
我创建了一个按钮,允许我输入“Marble#”和“Time”并报告是否在给定时间对Marble进行了分类,如果是,那么什么组,如果不是最后一个组是什么英寸
当大理石只被分类为1组时,这种情况很好,但是当大理石被分类为多个组然后从其中一个组中移除时出现了这种情况,即
............在“时间'4.0'”“大理石'1'”是“未分类”来自“组'1'”
我的有限代码将删除任何分类记录,并简单地将最新的分类报告为“它所在的最后一个类别”,即
Marble#= 1,Time = 5.0 Result =“Uncategorized”Last Category =“Group'1'”实际上它仍被“分类”为“Group'2'”。
在总结中,我需要一个代码,允许我输入“Marble#”和“Time”,告诉我在特定时间“大理石”是否“分类”,如果是这样,“组”是什么“分类”到,如果不是那么最后的“组”是什么,它被“分类”到。
我在下面发布了我的代码。 。请记住,这是我的第一个VBA代码,它已经通过Google搜索和反复试验与Frankensteined一起使用。 。 。 * (注意Cell(15,8)和Cell(18,8)分别是“Enter Marble#”和“Enter Time”) * (第1,2列, 3,4是Marble#,分类,分组#和时间分别 * *
Private Sub CommandButton2_Click() Dim Categorized As String, i As Integer, Group As Integer Count = Application.CountA(Range("A:A")) For i = 1 To Count If Cells (i, 1).Value = Cells(15, 8) And Cells (i, 4).Value <= Cells (18, 8) And Cells (i, 2) = "CATEGORIZE" Then Categorized = "CATEGORIZED" If Cells (i, 1).Value = Cells(15, 8) And Cells (i, 4).Value <= Cells (18, 8) And Cells (i, 2) = "UNCATEGORIZE" Then Categorized = "NOT CATEGORIZED" If 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) Next i If Categorized = "CATEGORIZED" Then MsgBox Categorized & " Categorized to " & Group If Categorized = "NOT CATEGORIZED" Then Msgbox Categorized & " Was Last Categorized to " & Group If Categorized = "" Then Msgbox "Marble Does Not Exist Prior to This Time" End Sub
此外,在不同时间有多个重复的条目,即
At "Time '1.0'" "Marble '1'" is "Categorized" into "Group '1'" At "Time '1.1'" "Marble '1'" is "Categorized" into "Group '1'" At "Time '1.4'" "Marble '1'" is "Categorized" into "Group '1'"
重复的“分类”数量与我无关,它是“已分类”或“未分类”。 。 。 (无论您按下“开”按钮多少次,如果按下“关闭”按钮,指示灯熄灭:))
非常感谢您的帮助。请保持批评建设性,因为我已经提到这是我的第一个VBA代码。谢谢。