用VBA实现:A列单元格的值第1次出现则在对应G列写入1,第2次出现则在对应G列写入2第3次出现则在对应G列写入3,依次写入
时间: 2024-10-20 19:11:32 浏览: 14
在VBA中,你可以使用For Each循环以及Collections来实现这个功能,因为Collections可以存储唯一值,并自动排序。下面是一个简单的示例代码片段:
```vba
Sub UniqueValuesAndCounter()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") ' 更改为你需要操作的工作表
Dim rng As Range
Set rng = ws.Range("A:A") ' A列范围
Dim colColl As New Collection
Dim i As Long, j As Long
For Each cell In rng.Cells
If Not colColl.Contains(cell.Value) Then
colColl.Add cell.Value, CStr(i)
ws.Cells(cell.Row, 7).Value = i + 1 ' G列写入计数
i = i + 1
Else
ws.Cells(cell.Row, 7).Value = colColl.Item(colColl.IndexOf(cell.Value)) ' 如果值已存在,则写入对应的计数
End If
Next cell
End Sub
```
这段代码会遍历A列,将每个唯一的值及其出现次数存储在Collection中,然后在G列相应位置更新计数。
阅读全文