如何比较VBA中的文本值?

时间:2015-03-11 10:23:20

标签: vba excel-vba excel

我有一张桌子如下图所示。我想比较A列和#34; Text"具有同一列中的下一个文本值的值。如果它们等于将索引i = 1(如果它们不同),则将下一个索引i + 1放入。 问题在于,除了保持空白的单元格(如图所示),每个列B单元格的右边索引。有人可以帮忙吗?

enter image description here

Sub Ma1()
Dim ws As Worksheet
Dim LastRow As Long
Dim i, n As Integer

Set ws = ActiveWorkbook.Sheets("Sheet2")
LastRow = Sheets("Sheet2").Range("A" & Sheets("Sheet2").Rows.Count).End(xlUp).Row

Column1 = Sheets("Sheet2").Range("A3:A" & LastRow)

n = 1
For i = 3 To LastRow
On Error Resume Next
If Range("A" & i) = Range("A" & i + 1) Then
Range("B" & i) = n
Else: n = n + 1
End If
Next i

End Sub

2 个答案:

答案 0 :(得分:1)

你应该修改你的IF:

If Range("A" & i) = Range("A" & i + 1) Then
   Range("B" & i) = n
Else
   n = n + 1
   Range("B" & i) = n-1
End If

答案 1 :(得分:0)

试试这个:

Sub Ma1()
Dim ws As Worksheet
Dim LastRow As Long
Dim i, n As Integer

Set ws = ActiveWorkbook.Sheets(1)
LastRow = Sheets(1).Range("A" & Sheets(1).Rows.Count).End(xlUp).Row

Column1 = Sheets(1).Range("A3:A" & LastRow)

n = 1
For i = 3 To LastRow
    On Error Resume Next
    If Range("A" & i) = Range("A" & i + 1) Then
        Range("B" & i) = n
    ElseIf Range("A" & i) <> Range("A" & i + 1) And _
           Range("A" & i) = Range("A" & i - 1) Then
        Range("B" & i) = n
        n = n + 1
    End If
Next i

End Sub