VBA Do Or Loop with Or""条件

时间:2014-07-08 13:29:04

标签: loops excel-vba conditional-statements vba excel

 Do Until Sheets("Sheet1").Cells(x, y).Value = stringOne Or ""

        x = x + 1

 Loop

在上面的VBA代码片中,我收到运行时错误' 13':类型不匹配。 stringOne声明为String。我可以消除Or""并且循环工作。我可以消除stringOne,只有""并且循环工作。只有当我添加Or""循环停止运作。我甚至交换了订单,即=""或者stringOne。有什么想法吗?

2 个答案:

答案 0 :(得分:10)

任何条件都需要表达式和运算符。

 Do until exp1 op exp2 OR exp3

可能仅在exp3是布尔类型时才有效。 “”(字符串)不是。

所以它应该像

 Do Until Sheets("Sheet1").Cells(x, y).Value = stringOne Or Sheets("Sheet1").Cells(x, y).Value = ""

答案 1 :(得分:5)

在OR之后需要一个布尔运算,所以你基本上需要:

Do Until Sheets("Sheet1").Cells(x, y).Value = stringOne Or Sheets("Sheet1").Cells(x, y).Value = ""

        x = x + 1

 Loop

或""不是布尔运算,因此你有 Do Until (boolean operation) OR (string constant)代替Do Until (boolean operation) OR (boolean operation)