我总是收到错误“ End If Without Block If”,尽管对于开头的If我有一个End If,并且还尝试缩进语句。怎么了?
If TextBox1.Text = "" Then
MsgBox "Please Enter Value"
Else:
Sheets("confirmation").Range("F7").Value = ComboBox1.Value
Sheets("confirmation").Range("F9").Value = TextBox1.Value
For i = 20 To 1 Step -1
Rows(i & ":33").EntireRow.Hidden = False
Cells(13 + i, 1).Value = 20
i = i + 1
Exit For
UserForm1.Hide
End If
答案 0 :(得分:4)
在Else
之后删除冒号。
将Exit For
替换为Next
。使用Exit For
,您可以提前退出For循环。
正如@Bill Hileman在评论中所述,For循环将无限运行,因为i
在循环中递增,但在For循环正文中递减。
If TextBox1.Text = "" Then
MsgBox "Please Enter Value"
Else
Sheets("confirmation").Range("F7").Value = ComboBox1.Value
Sheets("confirmation").Range("F9").Value = TextBox1.Value
For i = 20 To 1 Step -1
Rows(i & ":33").EntireRow.Hidden = False
Cells(13 + i, 1).Value = 20
i = i + 1
Next
UserForm1.Hide
End If
答案 1 :(得分:0)
您还需要用next
指示for循环的结束位置。并且您需要删除:
If ... Then
....
Else
For ...
...
Exit For
Next
End if