我无法在任何地方找到我的问题的答案,所以在这里
我有一个包含订单ID和单元号的表。订单ID有很多单位编号,我只对单位编号不为零的订单编号感兴趣,即使它们的某些单位编号为零。
它看起来像这样:
Order ID Unit Number
XD23 0
XD23 0
XD23 1
XD23 0
CF25 0
CF25 0
CF25 2
LQ29 0
LQ29 0
LQ29 0
并希望得到这种输出:
Order ID Unit Number
XD23 1
XD23 1
XD23 1
XD23 1
CF25 1
CF25 1
CF25 1
LQ29 0
LQ29 0
LQ29 0
因此,如果订单ID中的任何位置存在与零不同的单位编号,则订单ID的每一行都应具有值1。
我尝试用if条件创建一个循环,但我对VBA很新,所以它没有成功
也许我需要一个解决方案,检查前一个,当前和下一个订单ID,以评估它们是否不同,以便他们可以重新开始检查0& 1.
非常感谢你!
编辑:我拥有的代码 - 我尝试为单个订单ID进行测试
Sub Test1()
Dim rngID As Range
Dim rngUnit As Range
Dim dblMax As Double
Dim OrderID As OrderID
Dim OrderID As New OrderID
OrderID.ID = "CBR516038001"
'Set range from which to determine largest value
Set rngID = Sheet1.Range("I2:I1000000")
Set rngUnit = Sheet1.Range("AQ2:AQ1000000")
'Worksheet function MAX returns the largest value in a range
For Each OrderID.ID In rngID.Rows
dblMax = OrderID.Value
Next
For Each OrderID.ID In rngID.Rows
rngUnit.Rows = dblMax
Next
End Sub
答案 0 :(得分:1)
尝试使用2个循环,第一个循环标识订单ID,其单元号不为零,并将此订单ID存储在一个数组中,第二个循环更改单元号,如果订单ID在数组