0
下面的我的VBA代碼決定給定日期是否爲工作日。當它不是工作日時,它將輸出前一天的日期。如何在.find()中格式化日期?
問題是,它似乎不尊重日期格式。例如,當搜索01/02/2015時,它看起來將日期定爲2015年2月1日。由於01/02/2015導致問題可能不是工作日,而02/01/2015可能是。
下面的代碼:
Function FechaHabil(Fecha As Date, Rango As Range)
'Rango is the set of non working dates
'Fecha is the desired date to find
Dim Flag As Integer
Dim FechaFinal As Date
FechaFinal = Format(Fecha, "dd/mm/yyyy")
Flag = 0
Do While Flag <> 1
Set Busca = Rango.Find(FechaFinal, LookIn:=xlValues)
If Not Busca Is Nothing Then
FechaFinal = DateAdd("d", -1, FechaFinal)
Flag = 0
Else
Flag = 1
End If
Loop
FechaHabil = FechaFinal
http://www.ozgrid.com/VBA/find-dates.htm –
類似的問題已經在這裏討論 http://stackoverflow.com/a/30293508/4230409 – Vasily
我試圖讓問題更加清楚 - 起初很難閱讀,但我已經更正了一些拼寫錯誤,並且很快就引入了關鍵問題。此外,我更改了代碼的白色間距 - 不確定是否正確,我不使用VBA,請隨時將其更改回來。 – jaunt