VBA Auto根据两个单独行中的值进行填充

时间:2017-03-09 10:00:16

标签: excel vba excel-vba

我无法在任何地方找到我的问题的答案,所以在这里 我有一个包含订单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

1 个答案:

答案 0 :(得分:1)

尝试使用2个循环,第一个循环标识订单ID,其单元号不为零,并将此订单ID存储在一个数组中,第二个循环更改单元号,如果订单ID在数组