Do Until Sheets("Sheet1").Cells(x, y).Value = stringOne Or ""
x = x + 1
Loop
在上面的VBA代码片中,我收到运行时错误' 13':类型不匹配。 stringOne声明为String。我可以消除Or""并且循环工作。我可以消除stringOne,只有""并且循环工作。只有当我添加Or""循环停止运作。我甚至交换了订单,即=""或者stringOne。有什么想法吗?
答案 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)