gpt4 book ai didi

excel - 如何对一个范围内的一个单元格值进行编号,然后在单元格的值更改时重新开始编号

转载 作者:行者123 更新时间:2023-12-04 20:01:11 26 4
gpt4 key购买 nike

我有一个范围可以有多个值,但值可以重复。我试图编写一个可以执行此操作的宏,但遇到了障碍。我可以对整个范围内的单元格进行编号,从 1 到范围末尾的计数。这是我到目前为止的代码以及结果的列表。第二个列表是我的最终结果。

Sub Count_Items_Then_Repeat_On_Data_Change()

Dim rng As Range

Dim cell As Range

Dim count As Long

count = 1

Set rng = Application.Selection

For Each cell In rng

cell.Offset(0, 0).Value = cell.Value & "-" & count

count = count + 1


Next cell


End Sub



错误的输出
正确输出



A栏
A栏

1
1.01-1
1.01-1

2
1.01-2
1.01-2

3
1.01-3
1.01-3

4
1.01-4
1.01-4

5
1.02-5
1.02-1

6
1.02-6
1.02-2

7
1.02-7
1.02-3

8
1.02-8
1.02-4

最佳答案

我不完全确定我是否根据数据理解您的问题以及您似乎正在尝试做什么。
看起来您希望在单元格的原始值更改时重置计数。
如果整个选择是有序的,您可以在更改之前简单地测试下一个单元格,看看计数是否应该像这样重置:

Sub Count_Items_Then_Repeat_On_Data_Change()
Dim rng As Range
Dim cell As Range
Dim count As Long
count = 1
Set rng = Application.Selection
For Each cell In rng
'If the next cell has a different value, reset count after we change this one
If cell.Value <> cell.Offset(1, 0).Value Then
cell.Value = cell.Value & "-" & count
count = 1 'Reset count to 1
Else
cell.Value = cell.Value & "-" & count
count = count + 1
End If
Next cell
End Sub
我也继续更改 cell.Offset(0,0).Value - 你不需要 .Offset(0,0) - 它什么都不做;你可以使用 cell.Value .
结果:
Results

关于excel - 如何对一个范围内的一个单元格值进行编号,然后在单元格的值更改时重新开始编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71946051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com