簡體   English   中英

使用Excel VBA遍歷行以設置遞增計數器

[英]Loop through rows using Excel VBA to set a incrementing counter

“必填”字段是需要填充的字段,

  • 對於每個UNIQUE Serial“ REQUIRED”,僅在加星號“ *”時加1。 在VBA中。

這就是它的外觀。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM