【问题标题】:Increment value in cell according another value in another cell根据另一个单元格中的另一个值增加单元格中的值
【发布时间】:2019-10-04 17:11:51
【问题描述】:

我需要在 VBA 中做一些事情,但我什么都不知道..

我没有在网络上找到任何我需要的代码......

我认为这可以解释我需要什么(这不起作用):

         Column A                  Column B
Rows 1 | N°                        | REFERENCE EXP
Rows 2 | 1                         | 305-871
Rows 3 | =if(B3<>B2;A3=A2+1;A3=A2) | 402-920
Rows 4 | =if(B4<>B3;A4=A3+1;A4=A3) | 402-920
Rows 5 | =if(B5<>B4;A5=A4+1;A5=A4) | 406-585

所以,结果是这样的:

         Column A                  Column B
Rows 1 | N°                        | REFERENCE EXP
Rows 2 | 1                         | 305-871
Rows 3 | 2                         | 402-920
Rows 4 | 2                         | 402-920
Rows 5 | 3                         | 406-585

【问题讨论】:

  • 欢迎来到 Stack Overflow。请注意,由于这不是免费的代码编写服务,因此有必要显示您迄今为止尝试过的内容以及遇到的问题或错误(通过显示您的代码),或者至少显示您的研究内容和所做的努力.否则,它只是要求我们为您完成所有工作。阅读How to Ask 可能会帮助您改进您的问题。
  • 我输入了你的 vba 代码。你都尝试了些什么。如果你不知道从哪里开始。尝试录制宏,然后根据自己的喜好对其进行编辑。
  • 您需要将值添加到列表中,过滤唯一值,并按 A-Z(或其他)排序,然后为它们获取增量值。将您的值匹配的增量值应用回原始列表。看起来很简单,但你必须自己尝试一下。
  • 我发现:
    code Subtiti() Dim Lig As Long For Lig = 2 To Range("B" & Rows.Count).End(xlUp).Row Cells (Lig, 1).Value = Lig - 1 Next Lig End Sub.code 但该代码计算所有行。只有当行不同时我才需要计算...

标签: excel vba


【解决方案1】:

我找到了如何增加,但增加并没有停止......

我的代码:

Set derlign = Range("B" & Rows.count).End(xlUp)
'MsgBox ("Dernière ligne " & derlign & " !")
Set r1 = Range("A2:A100")
Set r2 = Range("B2:B100")
For N = 2 To r2.Rows.count
    If r2.Cells(N - 1, 1) = r2.Cells(N, 1) Then
       r1.Cells(N, 1) = r1.Cells(N - 1, 1)
    Else
       r1.Cells(N, 1) = r1.Cells(N - 1, 1) + 1
    End If
Next N
End Sub`

(我的下一个帖子我问how to stop the increment

【讨论】: