Скопировать все строки между двумя значениями времени - PullRequest
0 голосов
/ 30 января 2020

У меня есть таблица с примерно 6000 строк, а в столбце Z есть значение даты и времени. Форматирование выглядит следующим образом:

2020-01-29  13:18:36

Я хочу скопировать и вставить всю строку между Сейчас и 30 минут назад. Например, если текущее время 08:00, я хочу скопировать все строки с «2020-01-30 07:30:00» на «2020-01-30 08:00:00».

Примерно вот что я имею в виду:

.AutoFilter Field:=26, Criteria1:="<=Now", Operator:=xlAnd, Criteria2:=">=Now-30 minutes"
.SpecialCells(xlCellTypeVisible).Copy Destination:=Sheet2.Range("A1")

Как мне отформатировать текущее время, как в примере выше, и время 30 минут назад, и как вставить его в автофильтр?

Заранее спасибо!

/ Jens

Редактировать:

Этот код работает:

Dim LastRow
LastRow = Sheets("privata").Range("A" & Rows.Count).End(xlUp).Row

Sheets("privata").Range("A1:AN" & LastRow).AutoFilter Field:=26, Criteria1:=">=2020-01-30  08:00", Operator:=xlAnd, Criteria2:="<=2020-01-30  08:30"
Sheets("privata").Range("A1:AN" & LastRow).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("toptre").Range("A1")
Sheets("privata").ShowAllData

Но это не так:

Dim Nu As Date
Dim PreNu As Date
Dim LastRow
Nu = Now
PreNu = Now - 1 / 48
LastRow = Sheets("privata").Range("A" & Rows.Count).End(xlUp).Row

Sheets("privata").Range("A1:AN" & LastRow).AutoFilter Field:=26, Criteria1:="<=" & Nu, Operator:=xlAnd, Criteria2:=">=" & PreNu
Sheets("privata").Range("A1:AN" & LastRow).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("toptre").Range("A1")
Sheets("privata").ShowAllData

Вот пример таблицы: enter image description here

1 Ответ

1 голос
/ 30 января 2020

Согласно разделу комментариев, Sheets не имеет метода AutoFilter, что вызывает ошибку Named argument not found. Вам необходимо указать Range перед применением остальной части вашего кода (который был улучшен благодаря вкладу @ BigBen).

enter image description here

Правильный синтаксис:

Sheets("privata").Range("A1:Z17").AutoFilter Field:=26, Criteria1:="<=" & Nu, Operator:=xlAnd, Criteria2:=">=" & PreNu
Sheets("privata").Range("A1:Z17").SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("toptre").Range("A1")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...