2016-02-29 2 views
0

Это всего лишь часть кода VBA, который я пишу, и простое сравнение дат не работает. У меня есть один лист с тоннами данных, а код vba создает сводную таблицу. Код работает нормально и отфильтровывает все прошлые даты, но по какой-то причине он не отфильтровывается (3 февраля и 4 февраля) (сегодня 29 февраля). Он отфильтровывает все остальные даты в феврале, но это только те две даты. Кто-нибудь знает, что не так?Неправильное сравнение даты

With ActiveSheet.PivotTables("pivottable1").PivotFields("issuedate") 
    For Each pi In .PivotItems 
     If pi < Date Then 
      pi.Visible = False 
     End If 
    Next pi 
End With 
+0

http://stackoverflow.com/help/how-to-ask для этого сначала задайте вопрос – SkyWalker

+0

У меня некоторая проблема с датами, поступающими с SQL Server. Проблема в том, что Excel не понимает поля 'datetime', поступающие с SQL Server, потому что он включает миллисекунды. Таким образом, формат даты был «2015-02-04 00: 00: 00.000'. Excel не может этого понять. Но если вы измените его на '2015-02-04 00: 00: 00', то он будет работать. Может ли это быть проблема? – Ralph

+0

вы также можете использовать функцию 'DateDiff'. –

ответ

0

Вы проверили, что тип столбца - это дата, а не строка? Может быть, попробуйте CDate (pi)?

Если это не сработает, сообщите даты, которые не работают - возможно, выполнив команду Debug.print (pi).

+0

это сработало. Благодаря! –

+0

'Typename (Pi)' должно быть 'date'. Кроме того, не используйте переменные с запутанными именами, такими как Pi, которые уже должны быть 3.1415, но странно не ... –

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