复杂的条件,直到

时间:2012-07-24 11:16:14

标签: excel vba

Do Until Selection.Value = "" Or _
     (Selection.Value = theyear And Selection.Offset(0, 1).Value = themonth)

Selection.Offset(1, 0).Select

Loop

在这一行声明中,代码无法用或部分检查条件即;它不检查括号中的条件。是预期的吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

Sub Test()

Dim sMonth As String
Dim iYear As Integer

sMonth = UCase(Trim(InputBox("Enter the first three alphabets of the month to append", "Month Initials")))
iYear = InputBox("Enter the year to which the month corresponds", "Year")
Do Until Selection.Value = "" Or _
    (UCase(Trim(Selection.Value)) = sMonth And Selection.Offset(0, 1).Value = iYear)
    Selection.Offset(1, 0).Select
Loop

End Sub

您的主要错误是在引号之间添加变量名称。 但是,我想要注意的是,由于您允许用户无需检查即可输入任何数据,因此此代码可能对错误非常敏感。
但如果它是供自己使用的话,这并不重要 另请注意.Select / Offset使您的代码整体非常严格。