我只是想知道是否有人可以提供帮助。
我写了以下内容但是,如果他们没有足够的时间会出现,但是如果它没有足够的话就不会通过运行“NewBookingCheck”。
是的,有人可以帮我吗?我还要说这是我第一次完全编写自己的代码,所以我对可能出现的任何错误进行了表示
<div class="a"><h1>☹123-456-789text 2017</h1>
答案 0 :(得分:1)
你错过了一个结局,如果。因此,Else语句属于
If Ans = vbYes Then
if clause。
将代码的最后一部分更改为以下内容:
If daystaken >= 25 Then
Msg = " You Do Not Have Enough Holiday! Would You Like To Continue ? " & Application.UserName
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then
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
Else
NewBookingCheck.NewBookingCheck
End If
End Sub
答案 1 :(得分:0)
请尝试以下方法: -
Sub TooMuchHoliday()
Dim result As String
Dim myValue As Variant
Dim StrMsg As String
'If you have <= instead of just < it will not let them take there last day, they should be able to use down to 0 not 1
If Range("D14").Value < 0 Then
If MsgBox("You do not have enough annual leave remaining to fufil this request, would you still like to continue?", vbYesNo, "Not Enough") = vbNo Then
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
End If
Sheets("Request Form").Select
Range("Employee3").ClearContents
Range("DateRequest").ClearContents
Range("Employee3") = Application.UserName
NewBookingCheck.NewBookingCheck
End Sub
您检查用户使用的费用是否超过其余额(剩余)并且使用的次数不超过允许的次数(已拍摄)。这意味着有人可能会被给予超过25天的年假而不被允许接受,所以他们为什么要给它呢?要检查的关键是剩下的,如果低于0则会出现问题。
你还有<= 1
这意味着他们无法在那里休假两天(0是一天,1是一天)
如果应用程序退出,则无论如何都不会运行其余代码,因此,如果需要触发警报并且用户不想继续,那么它将关闭,否则它将启动下一段代码。< / p>
答案 2 :(得分:-2)
我将来建议你在这里重新编写和重新编辑你的问题,因为相应地接近了严肃的答案,你希望你的代码得到很好的组织并具有良好的代码外观。 至于你的问题:你没有附加NewBookingCheck函数,所以我猜它是某种类型的:Private Sub NewBookingCheck(){...} 尝试用以下代码替换NewBookingCheck.NewBookingCheck行:
Call NewBookingCheck()