VBA根据两行中的值自动填充
我在任何地方都找不到我问题的答案,所以就在这里。VBA根据两行中的值自动填充,vba,excel,Vba,Excel,我在任何地方都找不到我问题的答案,所以就在这里。 我有一个包含订单ID和单元号的表。订单ID有许多单位编号,我只对单位编号不同于零的订单ID感兴趣,即使它们有一些单位编号为零。 它看起来像这样: 订单ID单元号 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
我有一个包含订单ID和单元号的表。订单ID有许多单位编号,我只对单位编号不同于零的订单ID感兴趣,即使它们有一些单位编号为零。
它看起来像这样:
订单ID单元号
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
尝试使用2个循环,第一个循环用于标识单位编号不同于零的订单ID,并将此订单ID存储在数组中,第二个循环用于在订单ID位于数组中时更改单位编号。首先,我必须告诉您,StackOverflow不是免费的代码编写服务。因此,请分享您已经拥有的代码,以便任何人都可以改进它或显示问题所在。我的第二个问题是:这些行是以任何方式排序的还是条目是随机排序的?对不起,我不想让别人为我写代码。我编辑了OP,你可以看到我糟糕的代码。按字母顺序排列的行。