KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

Как копировать строки и вставлять их на другой лист в Excel на основе даты?

АвторСяоянДата изменения

Допустим, у меня есть диапазон данных, и я хочу скопировать всю строку на основе определённой даты, а затем вставить её на другой лист. Есть ли у вас эффективные способы выполнить эту задачу в Excel?

Копирование строк и вставка на другой лист на основе сегодняшней даты

Копирование строк и вставка на другой лист, если дата позже сегодняшней


Копирование строк и вставка на другой лист на основе сегодняшней даты

Если вам нужно скопировать строки, дата в которых соответствует сегодняшней, примените следующий код VBA:

1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модуль и вставьте следующий код в окно модуля.

Код VBA: копирование и вставка строк на основе сегодняшней даты:

Sub CopyRow()
'Updateby Extendoffice
    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False
    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value
        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal = Date) Then
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If
    Next
    Application.CutCopyMode = True
End Sub

3. После вставки приведённого выше кода нажмите клавишу F5, чтобы запустить его. Появится диалоговое окно с запросом выбрать столбец с датами, на основе которого нужно скопировать строки (см. скриншот).

снимок экрана с выбором диапазона дат после выполнения кода

4. Затем нажмите кнопку ОК. В следующем диалоговом окне выберите ячейку на другом листе, куда нужно вывести результат (см. скриншот).

снимок экрана с выбором ячейки назначения

5. После этого нажмите кнопку ОК. Теперь строки, дата в которых соответствует сегодняшней, будут немедленно вставлены на новый лист (см. скриншот).

снимок экрана с результатами


Копирование строк и вставка на другой лист, если дата позже сегодняшней

Чтобы скопировать и вставить строки, дата в которых больше или равна сегодняшней (например, дата наступает через 5 дней или позже), перенесите такие строки на другой лист.

Следующий код VBA может помочь вам в этом:

1. Удерживая клавиши ALT + F11, откройте окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить>Модульи вставьте следующий код в окно модуля.

Код VBA: копирование и вставка строк, если дата позже сегодняшней:

Sub CopyRow()
'Updateby Extentoffice
    Dim xRgS As Range, xRgD As Range, xCell As Range
    Dim I As Long, xCol As Long, J As Long
    Dim xVal As Variant
    On Error Resume Next
    Set xRgS = Application.InputBox("Please select the date column:", "KuTools For Excel", Selection.Address, , , , , 8)
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Application.InputBox("Please select a destination cell:", "KuTools For Excel", , , , , , 8)
    If xRgD Is Nothing Then Exit Sub
    xCol = xRgS.Rows.Count
    Set xRgS = xRgS(1)
    Application.CutCopyMode = False
    J = 0
    For I = 1 To xCol
        Set xCell = xRgS.Offset(I - 1, 0)
        xVal = xCell.Value
        If TypeName(xVal) = "Date" And (xVal <> "") And (xVal >= Date And (xVal < Date + 5)) Then
            xCell.EntireRow.Copy xRgD.Offset(J, 0)
            J = J + 1
        End If
    Next
    Application.CutCopyMode = True
End Sub

Примечание: в приведённом выше коде вы можете изменить условие — например, указать «меньше сегодняшней даты» или задать нужное количество дней — в строке кода If TypeName(xVal) = «Date» And (xVal "") And (xVal >= Date And (xVal < Date + 5)) Then.

3. Затем нажмите клавишу F5, чтобы запустить этот код. В появившемся диалоговом окне выберите столбец с данными, который вы хотите использовать (см. скриншот).

снимок экрана с выбором диапазона дат после выполнения кода 2

4. Затем нажмите кнопку ОК. В следующем диалоговом окне выберите ячейку на другом листе, куда следует вывести результат (см. скриншот).

снимок экрана с выбором ячейки назначения для размещения строк, если дата больше сегодняшней

5. Нажмите кнопку ОК. Теперь строки, дата в которых равна сегодняшней или более чем на 5 дней от неё, скопированы и вставлены на новый лист, как показано на следующем скриншоте:

снимок экрана, показывающий строки только в случае, когда даты больше сегодняшней


Лучшие инструменты повышения продуктивности в Office

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  VLookup по нескольким значениям  |   VLookup по нескольким листам   |   Распознавание нечетких соответствий
Расширенный раскрывающийся список:Быстрое создание выпадающего списка   |  Зависимый выпадающий список   |  Выпадающий список с множественным выбором
Управление столбцами:Добавление заданного количества столбцов|Перемещение столбцов|Переключение видимости скрытых столбцов|Сравнение диапазонов и столбцов
Избранные функции:Сетка фокусировки   |  Просмотр дизайна   |Улучшенная строка формулы   | Управление рабочими книгами и листами   |  Библиотека ресурсов(автотекст)|  Выбор даты   |  Объединить листы  |  Шифрование/Расшифровать ячейки   | Отправка писем по списку   |  Супер фильтр   |   Специальный фильтр(Фильтр ячеек с жирным шрифтом/курсив/зачёркивание…) …
Лучшие наборы инструментов 15:12 Текстовыеинструменты(Добавить текст,Удалить определенные символы, …)|   50+Типыдиаграмм(Диаграмма Ганта, …)|   40+ Практические формулы(Рассчитать возраст на основе даты рождения, …)|   19 Инструментывставки(Вставить QR-код,Вставка изображения по пути, …)|   12 Инструментыпреобразования(Преобразовать в слова,Конвертация валют, …)|   7 Объединить и разделитьИнструменты(Расширенное объединение строк,Разделить ячейки, …)|… и многое другое
Используйте Kutools на предпочитаемом языке — поддержка английского, испанского, немецкого, французского, китайского и ещё 40+ языков!

Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…


Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
  • Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!

Все надстройки Kutools — один установщик

Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.

ExcelWordOutlookTabsPowerPoint
  • Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
  • Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
  • Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
  • 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
  • Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек