VBA/Excel:遇到两个不同条件时如何改变单元格值?还需要识别何时停止等

p1iqtdky  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(109)

我的问题如下:
我有这样的表,我已经用macros/vba修改过了。它包含的信息如下所示

问题是,我需要识别包裹类型,然后它会更改价格。价格连接到包裹类型单元格中的文本,价格从另一个工作簿中获取(这不是问题)。
我需要做的是:
如果地区和日期相同,则代码应识别第一个手推车/包裹,然后将下一个单元格值更改为下一个手推车/下一个包裹(如果文本与原始文本不同,则价格会发生变化),直到日期和地区发生变化。所有不同地区也应如此(工作簿包含大约20个地区)。我已经做了一个例子,它应该如何看(见图2)。请注意,价格变化不是问题,它是从另一个工作簿调用的。

提前感谢!如果您需要更多的信息等,请随时询问

b09cbbtk

b09cbbtk1#

首先,从最后一行开始,向上写。
这里的基本逻辑是伪代码:

dim row
find last row and assign value to row

for i=row to 1
    if row.B = row-1.B
        if row.C = row-1.C
            add "Next" to end of row.E string
        end if
    end if
    i--
next i

这是完整的代码。

Sub Macro1()

    Dim lastRow As Integer
    
    lastRow = Range("B1").End(xlDown).Row
    
    Do While lastRow > 1
            
        If Range("B" & lastRow).Value = Range("B" & lastRow - 1).Value Then
            If Range("C" & lastRow).Value = Range("C" & lastRow - 1).Value Then
                Range("E" & lastRow) = Range("E" & lastRow) & " Next"
            End If
        End If
        lastRow = lastRow - 1
    Loop
    
End Sub

相关问题