2014-11-10 2 views
0

У меня есть две переменные BrkPt и TestDate. BrkPt имеет значение 3/05/2014, а TesDate имеет значение 201405. Мне нужно проверить, являются ли эти два значения одинаковыми (это да в этом случае - 2014 и месяц 05). Может ли кто-нибудь помочь мне продолжить это?Проверить две строки имеют одинаковые значения месяца и года

For GateChartRowCount = 15 To GateChartLastRow 
Worksheets("Gate Chart").Activate 
      GateChartValueToFind = Cells(GateChartRowCount, 1).Value 
     If (GateChartValueToFind = vbNullString) Then GoTo lblDoneWithValueToFind: 
      Worksheets("Reference").Activate 
      RefRowCount = Application.WorksheetFunction.CountIf(Columns(10), GateChartValueToFind) 
      If (RefRowCount <> 0) Then 
        RefRowForData = Application.WorksheetFunction.Match(GateChartValueToFind, Columns(10), 0) 
        BrkPt = Worksheets("Reference").Cells(RefRowForData, 11) 
      End If 

      For GateChartColumnCount = 2 To GateChartLastColumn - 3 
      Worksheets("Gate Chart").Activate 
      TestDate = Worksheets("Gate Chart").Cells(14, GateChartColumnCount) 
      TestDateConverted = CDate(TestDate) 
      BrkPt = Format(BrkPt, "mmyyyy") 
      BrkPt = CDate(BrkPt) 
       If TestDateConverted = BrkPt Then 
        Worksheets("Gate Chart").Cells(GateChartRowCount, GateChartColumnCount + 1) = "YES" 
       End If 
      Next GateChartColumnCount 

lblDoneWithValueToFind: 
Next GateChartRowCount 
+0

Можете ли вы показать мне ваш код? или что вы сделали до сих пор? –

+0

Я вставил код вместе с моим вопросом. –

ответ

0

Если вы уверены, что имеют фиксированный формат, BrkPt и TestDate, вы можете использовать следующий код:

Sub TRY() 

BrkPt = "3/05/2014" 
TestDateConverted = "201405" 

    BrkPt = "3/05/2014" 
    Y = Right(BrkPt, 4) 
    M = Mid(BrkPt, 3, 2) 
    D = Left(BrkPt, 1) 

    BrkPt = Format(DateSerial(Y, M, D), "MMYYYY") 

    TestDateConverted = "201405" 
    Y = Left(TestDateConverted, 4) 
    M = Mid(TestDateConverted, 5, 2) 


    TestDateConverted = Format(DateSerial(Y, M, D), "MMYYYY") 

    If BrkPt = TestDateConverted Then 
     MsgBox "Both Matches" 
    End If 

End Sub 
+0

Это сработало отлично! Спасибо, Пареш. –

+0

Рад помочь !!! –

0

Если TestDate является строка типа «YYYYMM» и BrkPt это значение DateTime, то вы можете использовать функцию, чтобы сделать вашу оценку:

Public Function IsTheSame(ByVal BrkPt As Date, ByVal TestDate As String) As Boolean 
    Dim str1 As String: str1 = Year(BrkPt) & Month(BrkPt) 
    If str1 = TestDate Then 
     IsTheSame = True 
    Else 
     IsTheSame = False 
    End If  
End Function 

Таким образом, вы будете иметь возможность позвонить функции и сделать ваше сравнение, функция ответит на ваш вопрос «две даты с тем же месяцем и годом?» просто сообщив вам «True» или «False».

+0

Это замечательно. Позвольте мне попробовать эту идею и вернуться, если у меня возникнут проблемы. –