本帖最后由 林木水 于 2021-12-14 09:55 编辑
代码如下,但是你描述的问题我个人觉得不够严谨,而且直接用函数公式也可以解决的问题尽量不要用vba
编码最后面只有3位数,如果超过3位数就要出错
如果问题得以解决,给最佳
附件如下:
Sub 循环遍历()
Dim sr As String, k As Integer
k = 1
Dim m1 As Integer, m2 As Integer, i As Integer
Dim f As Range, h1 As Integer, h2 As Integer
m1 = Cells(Rows.Count, 2).End(xlUp).Row
m2 = Cells(Rows.Count, 3).End(xlUp).Row
sr = VBA.Format(Date, "yyyymmdd") & "-"
Set f = Range("c:c").Find(sr, searchdirection:=xlPrevious)
If f Is Nothing Then
For i = m2 + 1 To m1
Cells(i, 3).Value = sr & VBA.Format(k, "000")
k = k + 1
Next i
Else
k = Right(f.Value, 3) + 1
For i = m2 + 1 To m1
Cells(i, 3).Value = sr & VBA.Format(k, "000")
k = k + 1
Next i
End If k=Range("c:c").Find(sr, searchdirection:=xlNext).row '这一句是为了复原find查找从上往下查找
End Sub