Диапазон Дат VBA Не Фильтруется

#excel #vba

#превосходить #vba

Вопрос:

Существует много вопросов по контролю качества на эту тему, но, похоже, ничто не отвечает на этот простой вопрос. Я не уверен, почему этот код не работает — все, что мне нужно сделать, это отфильтровать столбец Q с диапазоном дат. Что происходит, это удаляет (фильтрует) все элементы; это не оставляет выбранный диапазон дат:

 Dim StDate As Date Dim EndDate As Date  StDate = "1/20/21" EndDate = "2/2/21"  With ActiveSheet  .Range("Q1:Q2500").AutoFilter 1, "gt;=" amp; StDate, xlAnd, "lt;=" amp; EndDate  End With  

Комментарии:

1. Попробуйте заключить StDate и EndDate войти DateValue .

2. Дата начала = значение даты(«1/20/21») Дата окончания = значение даты(«2/2/21») тот же результат

3. Содержит ли столбец Q фактические даты (отформатированные числа) или текст, похожий на даты?

4. Короткий формат даты 1/1/21

5. Если вы измените формат на Общий, вы увидите такое число, как 44197 ?

Ответ №1:

Фильтр Между Датами

 Option Explicit  Sub FilterBetweenDates()    Const Crit1 As String = "gt;=1/20/21"  Const Crit2 As String = "lt;=2/2/21"    Dim ws As Worksheet: Set ws = ActiveSheet ' be more specific    If ws.AutoFilterMode Then ' remove possbile previous filter  ws.AutoFilterMode = False  End If    Dim rg As Range: Set rg = ws.Range("Q1:Q2500")    rg.AutoFilter 1, Crit1, xlAnd, Crit2   End Sub  

Комментарии:

1. это сработало идеально! тай!