2013-06-18 9 views
1

(Excel 2010 VBA) У меня есть ячейка (A1), содержащая дату в формате mmm-yy (категория «Пользовательский»). Например, если я вхожу в 1/6/13, ячейка показывает 13 июня. Хорошо. В моем макросе VB мне нужно проверить эту дату, является ли месяц текущим месяцем и является ли год текущим годом. Меня не волнует день.Excel VBA - сравнить дату в ячейке до текущей даты

ответ

1

Благодаря Дэйвом и MiVoth я сделал:

Dim xdate As Date 
xdate = Worksheets("sheet1").Range("A1") 
    If Month(Date) = Month(xdate) And Year(Date) = Year(xdate) Then 
     MsgBox "OK" 
    Else 
     MsgBox "not OK" 
    End If 

Это сделало работу!
Большое спасибо всем,
Gadi

+0

Обязательно выберите один из них в качестве ответа и, предпочтительно, выберите один или оба, чтобы убедиться, что другие похожие вопросы могут легко найти правильный ответ. – jaysoncopes

1

Как об этом:

Function MonthYear() As Boolean 
MonthYear = False 
If Not IsDate(Cells(1, 1)) Then Exit Function 
If Month(Date) = Month(Cells(1, 1)) And Year(Date) = Year(Cells(1, 1)) Then 
    MonthYear = True 
End If 
End Function 

Функция возвращает истину, если месяц и год такие же, как текущая дата. Если он не возвращает false.

4

ли это поможет вам:

Public Sub test() 
    d = Sheet1.Range("A1") 
    n = Now() 
    If Year(d) = Year(n) And Month(d) = Month(n) Then 
     MsgBox "It works" 
    End If 
End Sub 
+0

СПАСИБО! Это сработало !!!! – gadi

Смежные вопросы