"Block If without End If"错误



我正在为此代码收到编译错误:

Public Sub CommandButton1_Click()
If TextBox1.Text = "log off" Then
Shell "cmd.exe /c shutdown -l", vbHide: TextBox2.Text = "Logging off"
If TextBox1.Text = "shutdown" Then
Shell "cmd.exe /c shutdown -s", vbHide: TextBox2.Text = "Shutting Down"
If TextBox1.Text = "restart" Then
Shell "cmd.exe /c shutdown -r", vbHide: TextBox2.Text = "Restarting"
Else
MsgBox "Command Not Defined",vbCritical
End Sub

现在,它提出了此错误消息"如果没有结束,则如果没有结束"。为什么?

您错过了End If

Public Sub CommandButton1_Click()
    If TextBox1.Text = "log off" Then
        Shell "cmd.exe /c shutdown -l", vbHide: TextBox2.Text = "Logging off"
    ElseIf TextBox1.Text = "shutdown" Then
        Shell "cmd.exe /c shutdown -s", vbHide: TextBox2.Text = "Shutting Down"
    ElseIf TextBox1.Text = "restart" Then
        Shell "cmd.exe /c shutdown -r", vbHide: TextBox2.Text = "Restarting"
    Else
        MsgBox "Command Not Defined", vbCritical
    End If
End Sub

实际上,在您的代码中,您将始终具有TextBox2.Text等于"Restarting"。这就是为什么您应该使用ElseIf语句。

您也可以使用Select Case语句:

Public Sub CommandButton1_Click()
    Select Case TextBox1.Text
        Case "log off"
            Shell "cmd.exe /c shutdown -l", vbHide: TextBox2.Text = "Logging off"
        Case "shutdown"
            Shell "cmd.exe /c shutdown -s", vbHide: TextBox2.Text = "Shutting Down"
        Case "restart"
            Shell "cmd.exe /c shutdown -r", vbHide: TextBox2.Text = "Restarting"
        Case Else
            MsgBox "Command Not Defined", vbCritical
    End Select
End Sub

最新更新