Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Excel VBA循环行以设置递增计数器_Vba_Excel - Fatal编程技术网

使用Excel VBA循环行以设置递增计数器

使用Excel VBA循环行以设置递增计数器,vba,excel,Vba,Excel,“必需”字段是需要填充的字段 对于每个唯一的序列“必需”编号,仅当星号为“*”时才递增1。在VBA中 这就是它应该看起来的样子 将此公式粘贴到要填充的列中。如果你在意的话,你可以稍微调整它来隐藏零 =COUNTIFS($A$2:A2,A2,$C$2:C2,"*") 请注意该公式中的硬引用与相对引用,并确保您的条目与它们对齐。将此公式粘贴到您尝试填充的列中。如果你在意的话,你可以稍微调整它来隐藏零 =COUNTIFS($A$2:A2,A2,$C$2:C2,"*") 请注意该公式中的硬引用

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

  • 对于每个唯一的序列“必需”编号,仅当星号为“*”时才递增1。在VBA中
这就是它应该看起来的样子


将此公式粘贴到要填充的列中。如果你在意的话,你可以稍微调整它来隐藏零

=COUNTIFS($A$2:A2,A2,$C$2:C2,"*")

请注意该公式中的硬引用与相对引用,并确保您的条目与它们对齐。

将此公式粘贴到您尝试填充的列中。如果你在意的话,你可以稍微调整它来隐藏零

=COUNTIFS($A$2:A2,A2,$C$2:C2,"*")

请注意该公式中的硬引用与相对引用,并确保您的条目与它们对齐。

将此公式粘贴到您尝试填充的列中。如果你在意的话,你可以稍微调整它来隐藏零

=COUNTIFS($A$2:A2,A2,$C$2:C2,"*")

请注意该公式中的硬引用与相对引用,并确保您的条目与它们对齐。

将此公式粘贴到您尝试填充的列中。如果你在意的话,你可以稍微调整它来隐藏零

=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
子增量()
作为字符串的Dim prevalue
作为字符串的暗淡曲线值
Dim lstrow为长,i为长,j为整数
lstrow=范围(“A”和图纸(“Sheet1”).Rows.Count).结束(xlUp).行
j=0
对于i=2到L行
曲线值=范围(“A”和i)。值
如果CurveValue=prevalue和Range(“A”&i).Offset(0,2).Value=“*”则
j=j+1
范围(“A”和i).偏移量(0,1).值=j
ElseIf curvalue prevalue和Range(“A”&i).Offset(0,2).Value=“*”然后
j=1
范围(“A”和i).偏移量(0,1).值=j
如果结束
前值=曲线值
接下来我
端接头
请试试这个

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
子增量()
作为字符串的Dim prevalue
作为字符串的暗淡曲线值
Dim lstrow为长,i为长,j为整数
lstrow=范围(“A”和图纸(“Sheet1”).Rows.Count).结束(xlUp).行
j=0
对于i=2到L行
曲线值=范围(“A”和i)。值
如果CurveValue=prevalue和Range(“A”&i).Offset(0,2).Value=“*”则
j=j+1
范围(“A”和i).偏移量(0,1).值=j
ElseIf curvalue prevalue和Range(“A”&i).Offset(0,2).Value=“*”然后
j=1
范围(“A”和i).偏移量(0,1).值=j
如果结束
前值=曲线值
接下来我
端接头
请试试这个

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
子增量()
作为字符串的Dim prevalue
作为字符串的暗淡曲线值
Dim lstrow为长,i为长,j为整数
lstrow=范围(“A”和图纸(“Sheet1”).Rows.Count).结束(xlUp).行
j=0
对于i=2到L行
曲线值=范围(“A”和i)。值
如果CurveValue=prevalue和Range(“A”&i).Offset(0,2).Value=“*”则
j=j+1
范围(“A”和i).偏移量(0,1).值=j
ElseIf curvalue prevalue和Range(“A”&i).Offset(0,2).Value=“*”然后
j=1
范围(“A”和i).偏移量(0,1).值=j
如果结束
前值=曲线值
接下来我
端接头
请试试这个

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
子增量()
作为字符串的Dim prevalue
作为字符串的暗淡曲线值
Dim lstrow为长,i为长,j为整数
lstrow=范围(“A”和图纸(“Sheet1”).Rows.Count).结束(xlUp).行
j=0
对于i=2到L行
曲线值=范围(“A”和i)。值
如果CurveValue=prevalue和Range(“A”&i).Offset(0,2).Value=“*”则
j=j+1
范围(“A”和i).偏移量(0,1).值=j
ElseIf curvalue prevalue和Range(“A”&i).Offset(0,2).Value=“*”然后
j=1
范围(“A”和i).偏移量(0,1).值=j
如果结束
前值=曲线值
接下来我
端接头

我认为您不需要VBA来完成此操作。我想你可以用
COUNTIFS()
公式来完成。你能说清楚一点吗?您在某些值上增加了数字,但没有“*”。我认为您不需要VBA。我想你可以用
COUNTIFS()
公式来完成。你能说清楚一点吗?您在某些值上增加了数字,但没有“*”。我认为您不需要VBA。我想你可以用
COUNTIFS()
公式来完成。你能说清楚一点吗?您在某些值上增加了数字,但没有“*”。我认为您不需要VBA。我想你可以用
COUNTIFS()
公式来完成。你能说清楚一点吗?您在一些值上增加了数字,但没有“*”。非常感谢Nitish。这段代码对我学习如何做prevalue Offset之类的事情非常有用,我不确定它是如何完成的。非常感谢,感谢Nitish这段代码对我来说非常有用,我不知道如何做prevalue Offset。非常感谢Nitish这段代码对我学习如何做prevalue Offset非常有用,我不知道它是如何做的。非常感谢,感谢Nitish,这段代码对我学习如何做prevalue Offset之类的事情非常有用,我不确定它是如何完成的。