我正在尝试使用以下内容来检查范围B14和& E21。如果超出这些范围中的任何一个中的值,则应显示msgbox以告知用户该错误。
我有错误检查了代码并且没有突出显示任何错误,但是当我去运行它时没有发生任何事情。
Option Explicit
Sub TooManyHolidays()
Dim msg As String
Dim Ans As VbMsgBoxResult
If Sheets("Request Form").Range("B14") < 26 And Sheets("Request Form").Range("E21") < 10 Then
NewBookingCheck.NewBookingCheck
ElseIf Sheets("Request Form").Range("B14") >= 26 Then
msg = (" You Dont Have Enough Holiday ")
Ans = MsgBox(msg, vbYesNo)
If Ans = vbNo Then
Sheets("Request Form").Select
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
If Ans = vbYes Then
Sheets("Request Form").Select
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Range("Employee3") = Application.Username
ElseIf Sheets("Request Form").Range("E21") >= 10 Then
msg = (" You Cant Book More Than 10 Or More Days In One Request ")
Ans = MsgBox(msg, vbYesNo)
If Ans = vbNo Then
Sheets("Request Form").Select
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
If Ans = vbYes Then
Sheets("Request Form").Select
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Range("Employee3") = Application.Username
End If
End If
End If
End Sub
答案 0 :(得分:0)
我认为下面的代码会给你你想要的东西(即使我不知道什么是NewBookingCheck.NewBookingCheck
),或者如果两个范围你都在做什么(&#34; B14&#34; )和范围(&#34; E21和#34;)在允许值范围内。
Option Explicit
Sub TooManyHolidays()
Dim msg As String
Dim Ans As VbMsgBoxResult
With Sheets("Request Form")
If .Range("B14") < 26 And .Range("E21") < 10 Then
NewBookingCheck.NewBookingCheck '<-- don't know what this does ?
ElseIf .Range("B14") >= 26 Then
msg = (" You Dont Have Enough Holiday ")
Ans = MsgBox(msg, vbYesNo)
If Ans = vbNo Then
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
If Ans = vbYes Then
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Range("Employee3") = Application.UserName
End If
ElseIf .Range("E21") >= 10 Then '<-- this should be directly below "If .Range("B14") < 26 And .Range("E21") < 10 Then"
msg = (" You Cant Book More Than 10 Or More Days In One Request ")
Ans = MsgBox(msg, vbYesNo)
If Ans = vbNo Then
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
If Ans = vbYes Then
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Range("Employee3") = Application.UserName
End If
End If
End With
End Sub