我正在寻找Excel VBA代码,因为我想根据B列中的更改为A列分配序列号。例如,我需要在A列中回答每个X,Y的1,2,3 ,Z。
有人可以帮助发布所需的VBA代码吗?。
Column A Coloum B
1 X
1 X
2 Y
2 Y
3 Z
答案 0 :(得分:0)
Sub Serial()
For i = 1 To 10
Cells(i, 2).Select
If ActiveCell.Value = "x" Then
Cells(i, 1) = 1
ElseIf ActiveCell.Value = "y" Then
Cells(i, 1) = 2
ElseIf ActiveCell.Value = "z" Then
Cells(i, 1) = 3
End If
Next i
End Sub
这是超级简单版本,没有变量或任何类型。
答案 1 :(得分:0)
假设:
它需要是一个宏吗?这可以通过公式来完成。将数字1放在单元格A2中,然后将此公式放在单元格A3中并复制下来:
=A2+(B3<>B2)
如果它必须是一个宏,那么像这样的东西应该可以正常工作:
Sub tgr()
Dim rCell As Range
Dim arrID() As Long
Dim arrIndex As Long
Dim lID As Long
Dim strTemp As String
With Range("B2", Cells(Rows.Count, "B").End(xlUp))
ReDim arrID(1 To .Rows.Count)
For Each rCell In .Cells
If rCell.Text <> strTemp Then
strTemp = rCell.Text
lID = lID + 1
End If
arrIndex = arrIndex + 1
arrID(arrIndex) = lID
Next rCell
.Offset(, -1).Value = Application.Transpose(arrID)
End With
Set rCell = Nothing
Erase arrID
End Sub