[英]Loop through rows using Excel VBA to set a incrementing counter
“必填”字段是需要填充的字段,
這就是它的外觀。
http://s2.postimg.org/nketog5t5/table.jpg
Serial Number REQUIRED Starred SEQ_NO
040846/Z/96/C 1 * 1
040846/Z/96/C 2 * 2
040846/Z/96/C 3
042190/Z/96/F 1 * 1
042368/Z/97/B 1 * 1
042368/Z/97/B 2
042368/Z/97/B 2 * 3
042368/Z/97/B 4
042368/Z/97/B 3 * 5
042368/Z/97/B 6
042368/Z/97/B 7
042368/Z/97/B 8
047608/Z/96/B 1 * 1
047608/Z/96/B 2
047675/Z/96/D 1 * 1
047675/Z/96/D 2 * 2
047675/Z/96/D 3
將此公式粘貼到您要填充的列下。 如果您擔心的話,可以稍作調整以隱藏零。
=COUNTIFS($A$2:A2,A2,$C$2:C2,"*")
注意該公式中的硬引用與相對引用,並確保您的輸入與這些對齊。
請嘗試這個
Sub increment()
Dim prevalue As String
Dim curvalue As String
Dim lstrow As Long, i As Long, j As Integer
lstrow = Range("A" & Sheets("Sheet1").Rows.Count).End(xlUp).Row
j = 0
For i = 2 To lstrow
curvalue = Range("A" & i).Value
If curvalue = prevalue And Range("A" & i).Offset(0, 2).Value = "*" Then
j = j + 1
Range("A" & i).Offset(0, 1).Value = j
ElseIf curvalue <> prevalue And Range("A" & i).Offset(0, 2).Value = "*" Then
j = 1
Range("A" & i).Offset(0, 1).Value = j
End If
prevalue = curvalue
Next i
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.