如何在.find()中格式化日期?

时间:2015-09-15 18:25:13

标签: vba date date-formatting

以下我的VBA代码确定给定日期是否为工作日。当它不是工作日时,它将输出前一天的日期。

问题在于它似乎不尊重日期格式。例如,在搜索2015年1月2日时,它似乎将日期视为02/01/2015。这导致问题,因为01/02/2015可能不是工作日,而2015年1月1日可能是。

以下是代码:

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

1 个答案:

答案 0 :(得分:0)

使用它:

Application.FindFormat.NumberFormat = "dd/mm/yyyy"