【问题标题】:How to run the same VBA code on multiple rows如何在多行上运行相同的 VBA 代码
【发布时间】:2023-02-15 21:16:47
【问题描述】:

我有一个循环,该循环一直运行到第 8 行满足条件为止。

Sub Button1_Click()

    Dim i As Double
    Dim x As Double

    t = Range("K3").Value
    i = Range("C8").Value
    x = Range("E8").Value
    b = Range("B8").Value
    
    Do Until i > (x + t)
        i = i + 0.2
    Loop
      
    i = i - 0.2 - b
    
    Range("G8").Value = i

End Sub

这满足了我对第 8 行的要求,但我需要在多行上运行。唯一的静态值是单元格“K3”。

即:在第 8 行完成后,在第 9 行('C9'、'E9'、'B9'、'G9')上运行,依此类推。这将需要运行到第 500 行,或者输入的行数。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    这里会有一大堆人会给你一个更完整的答案,但我是来回答你的直接问题的。

    如果您需要应用其他增强功能,那么可能会带来其他问题。这将帮助您学习和进步,而不会向您抛出一堆您不确定的代码。

    Sub Button1_Click()
        Dim i As Double
        Dim x As Double
        Dim lngRow As Long
        
        t = Range("K3").Value
        
        For lngRow = 8 To 500
            i = Range("C" & lngRow).Value
            x = Range("E" & lngRow).Value
            b = Range("B" & lngRow).Value
            
            Do Until i > (x + t)
                i = i + 0.2
            Loop
              
            i = i - 0.2 - b
                
            Range("G" & lngRow).Value = i
        Next
    End Sub
    

    这是遍历每一行的简单方法。

    您应该考虑的性能问题包括循环、不断更新单元格、更新单元格时的计算和事件等。

    但这回答了你的问题。

    【讨论】:

    • 另一个考虑因素是确保范围都符合其父工作表的要求。这将避免将来出现问题。
    • @ScottCraner,好点......!
    • 谢谢 Skin,感谢您的回答,这看起来就像我现在正在尝试做的那样。期待学习更多。
    • @BradMorg,很酷的人,坚持下去。这是一个很好的、有趣的、可移植的编码空间。也非常强大。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2021-07-27
    • 2019-11-11
    • 2020-10-03
    相关资源
    最近更新 更多