首页 > 解决方案 > 循环内条件 (VBA)

问题描述

我为 Excel VBA 编写了这个简单的子程序。我故意使用冒号 (:) 来分隔语句。为什么它不起作用?

Sub ConditionInsideLoop()

    cb = 0: cd = 1: For ca = 1 To 5: If cd = 1 Then cb = cb + 1: Next

End Sub

这个问题主要是理论上的。但这可能是实用的。例如,当我们使用即时窗口并且需要在简单循环中使用简单条件时。

标签: vba

解决方案


这是一个语法问题。您可以重新编写以删除混淆的 If 语句。

Public Sub ConditionInsideLoop()
    Dim cb As Long, cd As Long, ca As Long
    cb = 0: cd = 1: For ca = 1 To 5: cb = IIf(cd = 1, cb + 1, cb): Next
    Debug.Print cb
End Sub

推荐阅读