2009-10-16 16 views

Respuesta

32

Hay una función que toma un día de la semana Fecha como un argumento y devuelve el día (1, 2, 3, etc.)

Los valores de retorno son:

vbSunday (1) 
vbMonday (2) 
vbTuesday (3) 
vbWednesday (4) 
vbThursday (5) 
vbFriday (6) 
vbSaturday (7) 

Suponiendo que son los fines de semana sábado y domingo, la función se vería así:

Public Function IsWeekend(InputDate As Date) As Boolean 
    Select Case Weekday(InputDate) 
     Case vbSaturday, vbSunday 
      IsWeekend = True 
     Case Else 
      IsWeekend = False 
    End Select 
End Function 
+0

Ejemplo de uso, ya que esto era no queda claro en la publicación: 'IsWeekend (" 13/11/2017 ")' –

6

O bien, puede utilizar esto:

OR(MOD(WEEKDAY(cell), 7)=0, MOD(WEEKDAY(cell), 7)=1) 

o

MOD(WEEKDAY(cell), 7) < 2 

como una fórmula.

desde 1 es domingo y 0 es Sábado

2

Fórmula para convertir la fecha para los días de semana

Selection.FormulaR1C1 = "= TEXTO (DÍA DE LA SEMANA (R7C" + CStr (i) +", 1), "" DDD "")"

esto devolverá día

por ejemplo: - si la entrada es 02-mayo-2013 luego volverá Jue -> (jueves) aquí variable i representa otra columna

9

Esta es la forma más directa para determinar si MyDate cae en el fin de semana:

MsgBox Weekday(MyDate, vbMonday) > 5 

La función de lunes a viernes() tiene un segundo parámetro opcional que le dice qué día de la semana comienza la semana. El día de la semana() devuelve un número entero de 1 a 7.

me he dado instrucciones para que se inicie la semana el lunes y así estaría Sábado 6 y Domingo sería 7.

Cuestiones relacionadas