“块如果没有结束如果”错误

我得到这个代码的编译错误:

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 

现在它出现了“Block If without End If”的错误信息。 为什么?

你错过了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