我试图找到连续值的计数,以便将其更改为另一个值。例子 :
A
A
B
A
B
B
B
B
A
如果有连续值(AA、AAA、AAAA.. 或 BB、BBB、BBBB...),则将第二个和相应的值替换为 C
我尝试了以下代码:
Dim values As Integer
values = Range().Rows.Count
For i = 1 To values
If Range().Cells(i, 1) = Range().Cells(i + 1, 1) Then
Range().Cells(i + 1, 1) = “C”
End If
Next i
但是,这只考虑了 2 个连续值,并且不超过 2.. 如何修复我的代码?
感谢帮助。
谢谢
最佳答案
请尝试下一个代码。在您的代码中,第一次替换后,条件不再匹配。代码假定要处理的列是“A:A”:
Sub removeConsecRowsValue()
Dim sh As Worksheet, values As Long, i As Long, j As Long
Set sh = ActiveSheet 'use here your sheet
values = Range("A" & Rows.count).End(xlUp).Row 'supposing that the column to be processed is A:A
For i = 1 To values
If sh.Range("A" & i).value = sh.Range("A" & i + 1).value Then
Dim rng As Range
For j = i + 1 To i + 1000
If sh.Range("A" & j).value = sh.Range("A" & i).value Then
If rng Is Nothing Then
Set rng = sh.Range("A" & j)
Else
Set rng = Union(rng, sh.Range("A" & j))
End If
Else
rng.Replace sh.Range("A" & i).value, "C"
Exit For
End If
Next j
End If
Next i
End Sub
关于excel - 查找连续值的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62245097/