выбрать, скопировать и вставить диапазон строк на основе значения даты в ячейке в списке, отсортированном по дате - PullRequest
0 голосов
/ 19 июля 2011

Мне нужна помощь с некоторым VBA в Excel, чтобы найти конкретное значение ячейки (то есть сегодняшнюю дату), а затем на основе этого критерия выбрать, скопировать и вставить диапазон строк в другую рабочую таблицу на основе критериев, которые они содержатпрошлое или будущее.Мой рабочий лист отсортирован ASC по дате, и я прочитал несколько сообщений, аналогичных этой проблеме, но я не решил сам, поэтому не знаю, является ли моя проблема недостаточным опытом работы с датами или что все темы, которые яТребования read немного отличались.

Пример исходного листа выглядит следующим образом:

givenName   RegistrationStartDate
Kirstie     1/07/2010
Momena      12/01/2011
Seyedkazem  18/01/2011
Christie    3/02/2011
Jakub       8/02/2011
Steven      11/07/2011
Patrina     13/07/2011
Gregory     14/07/2011
Fatima      15/07/2011
Thomas      18/07/2011
Ala         **19/07/2011**
Anne        31/07/2011
Umair       1/08/2011
Laura       2/08/2011

И мне нужна помощь с VBA, чтобы найти сегодняшнюю дату 19/07/2011 и вставить ее в «в прошлом» рабочий лист;

givenName   RegistrationStartDate
Kirstie     1/07/2010
Momena      12/01/2011
Seyedkazem  18/01/2011
Christie    3/02/2011
Jakub       8/02/2011
Steven      11/07/2011
Patrina     13/07/2011
Gregory     14/07/2011
Fatima      15/07/2011
Thomas      18/07/2011

и «в будущем» рабочий лист

givenName   RegistrationStartDate
Anne        31/07/2011
Umair       1/08/2011
Laura       2/08/2011

Я думаю, что может иметьЯ добавил, что мне не нужны строки с сегодняшней датой.Как только я разберусь с этим, я буду добавлять логику в критерии «какая дата сейчас» (т.е. за 28 дней до и после сегодняшней даты) и копировать / вставлять строки на основе этого.Я думаю, если какой-нибудь гуру может помочь мне с этим, со мной все будет в порядке.

С наилучшими пожеланиями

Ларри

1 Ответ

0 голосов
/ 20 июля 2011

Таким образом, чтобы ответить на ваш вопрос, чтобы получить текущую дату (т.е. системную дату, которая, как мы надеемся, совпадает), вы используете функцию Date.

Теперь вы обрабатываете список и сравниваете каждуюдата с системной датой;

  • даты
  • даты> sysdate являются будущими
  • даты = sysdate игнорируются

если ваши даты в таблице содержат информацию о времени, вы должны использовать Int(yourtabledate), чтобы избавиться от времени, потому что 02.08.2011 08:12 > 02.08.2011 (с неявным временем 00:00) и, следовательно, отправится в будущее, которое вам не нужно.

Для отдыха ... если вы не знаете, как создать цикл в таблице в VBA, задайте конкретный вопрос.

Приветствия Майк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...