Нам нужно будет увидеть весь ваш код, чтобы точно ответить на этот вопрос - и скриншот вашей таблицы. Я рекомендую опубликовать его.
В то же время я могу разумно предположить, что у вас здесь сейчас.
Вам необходимо настроить диапазон на вашем автофильтре, независимо от того, какой столбец содержит ваши даты. Сейчас он проверяет столбец D для критериев «= Имя». Возможно, вам также придется корректировать свои критерии. to "= Date" --- "date", независимо от того, какая дата находится в текстовом формате. Поскольку даты в excel часто являются фактическими числами, вам может потребоваться использовать фактическое число, если вы не преобразуете свой столбец даты в строку/текст, что я, вероятно, рекомендую. .offset (2) выглядит странно, вам, возможно, придется это подкорректировать. Я бы предположил, что «A: G» - это диапазон, содержащий всю вашу таблицу.
http://www.ozgrid.com/VBA/autofilter-vba-criteria.htm
Попробуйте это:
With Intersect(Sheet.UsedRange, Sheet.Columns("G")) ' assuming column G contains your dates.
.AutoFilter Field:=1, "=Date" ' put your date in number or text format here as the criteria
удачи.
EDIT: Попробуйте это:
.AutoFilter Field:=1, Criteria1:="*/*"
Это своего рода хак, но опять же, необходимость немного не в коробке ... Если у вас есть даты и текст в том же столбце и в полях даты, вы может попробовать '.AutoFilter 1, Criteria1: ="> 1/1/1990 "', где 1/1/1990 - это произвольная дата до первой даты в ваших данных (чтобы вы захватили все необходимые данные). Постскриптум - В автофильтре нет возможности сказать «дайте мне строки с датами». –