“块如果没有结束如果”错误
我得到这个代码的编译错误:
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