我想给宏中的初始数字(在此示例中为T00101),并且如果满足条件(在列C具有“良好”的值),所以如果列B中的单元格没有变化,则将其增加1,如果列中有变化,则将增加100(从先前名称的第一次出现开始计数) B.编号取决于更改另一列中的单元格值 - vba代码
如果在列C中该单词为“假”,则A中的单元格将保持空。 这是该词的第一次出现总是以01结尾,该词的第二次出现以02结尾。如果名称中有变化,则该数字的前三位数字增加1。牛逼信)
我想这是一个结果:
A B C
Id Name Status
T00101 Apple good
T00102 Apple good
T00103 Apple good
T00201 Peach good
T00301 Orange good
Banana false
T00401 Grapes good
T00402 Grapes good
我有这个,但它不能正常工作......为宏任何其他建议?
Sub numbering()
Sheet1.Select
Dim Start As Long
Dim Piece As String
Dim lastrow As Long
Dim erow As Long
lastrow = Sheet1.Cells(Rows.Count, 2).End(xlUp).Row
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Start = 00101
Piece = 0
For i = erow To lastrow
If Cells(i, 3) = "good" Then
Sheet1.Cells(i, 1) = Start
If Cells(i, 2) = Cells(i + 1, 2) Then
Piece = Piece + 1
Start = Start + 1
Else:
Sheet1.Cells(i, 1) = Start - Piece + 100
End If
End If
Next i
End Sub
在发布代码,请使用缩进,使之可读。 –
'它不能正常工作'并没有以任何有用的方式描述问题 – jsotola