每个标题,我有这张数据:
111-22-333-4444 $100.00 1
111-22-333-4444 $100.00 2
111-22-333-4444 $100.00 3
111-22-333-4444 $200.00 4
111-22-333-4444 $400.00 5
222-33-444-5555 $500.00 1
222-33-444-5555 $500.00 2
222-33-444-5555 $500.00 3
222-33-444-5555 $700.00 4
222-33-444-5555 $500.00 5
如何编写一个 VBA 子程序,该子程序将采用一组具有相同金额的 $ (100.00) 的重复值 (111-22-333-4444),并替换值大于该最小值的行的 $组在第三列。
我希望结果是这样的:
111-22-333-4444 $100.00 1
111-22-333-4444 $0 2
111-22-333-4444 $0 3
111-22-333-4444 $200.00 4
111-22-333-4444 $400.00 5
222-33-444-5555 $500.00 1
222-33-444-5555 $0 2
222-33-444-5555 $0 2
222-33-444-5555 $700.00 4
222-33-444-5555 $0 5
我尝试使用 IF 语句查找第一列中每个不同值的重复值,并将它们作为范围分配给变量,然后遍历该范围以查找第三列中的最小值,但到目前为止还没有运气.
预先感谢您提供任何见解!
Option Explicit
Sub Demo()
Dim i As Long, j As Long
Dim arrData, rngData As Range
Dim arrRes, iR As Long
Dim LastRow As Long, vVal
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set rngData = Range("A1:B" & LastRow)
arrData = rngData.Value
ReDim arrRes(1 To UBound(arrData), 1 To UBound(arrData, 2))
vVal = arrData(1, 2)
For i = LBound(arrData) + 1 To UBound(arrData)
If arrData(i, 2) = vVal Then
arrData(i, 2) = 0
Else
vVal = arrData(i, 2)
End If
Next i
rngData.Value = arrData
End Sub