For带有If或语句VBA的循环



我对excel列中的两个单元格进行了硬编码,以计算第一个或第二个单元格的值是否为1。它是这样工作的(但也为每个适用的单元格写下,因此无效(:

If Range("D10").Value = 1 Or Range("D11").Value = 1 Then
x = x + 1
Else
x = x + 0
End If

我正在尝试重构它。我的想法是做一个for循环,使用if和or语句(类似于我当前的代码(,但收到了语法错误。我的尝试:

Sub refactor()
Dim x As Integer
x = 0
For Each c In Range("D2-D13").Cells
If c.Value =1 OR (c+1).Value = 1 Then
x = x + 1
Else
x = x + 0
End If
Range("A19") = x
End Sub

我所能找到的只是包含if语句的循环,但从来没有添加"if"语句;或";所考虑的条件。VBA对我来说是新的。有什么方法可以编写它吗?

对于循环足够运行整个范围,这是不需要的"或c.offset(1,0(.value=1〃;因为";或";用于任何一个条件的运算符为true时,它将允许运行代码。

"如果c.值=1并且c.偏移(1,0(。值=1然后"="这种情况用于如果两个语句都为true,则仅当条件允许运行代码时。你在找这个吗?

Sub refactor()
Dim x As Integer
Dim c As Range
x = 0
For Each c In Range("D2:D13")
'if c.Value = 1 Or c.Offset(1, 0).Value = 1 Then'this line is same as below line
if c.value = 1 then
x = x + 1
End If
Next c
Range("A19") = x
End Sub

最新更新