Прескочи на основното съдържание

Как да копирате редове и да ги поставите в друг лист въз основа на дата в Excel? 

Автор: Xiaoyang Последна промяна: 2017-11-23

Да предположим, че сега имам набор от данни, искам да копирам целите редове въз основа на конкретна дата и след това да ги поставя в друг лист. Имате ли добри идеи да се справите с тази работа в 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, След това кликнете OK бутон, в друго поле за подкана изберете клетка в друг лист, където искате да изведете резултата, вижте екранна снимка:

5, И после щракнете върху OK бутон, сега редовете, чиято дата е днес, се поставят в новия лист наведнъж, вижте екранната снимка:


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

За да копирате и поставите редовете, чиято дата е по-голяма или равна на днешната, например, ако датата е равна или по-голяма от 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

Забележка: В горния код можете да промените критериите, като например по-малко от днес или броя дни, колкото ви е необходимо в Ако TypeName(xVal) = "Дата" И (xVal <> "") И (xVal >= Дата И (xVal < Дата + 5)) Тогава код на скрипта.

3. След това натиснете F5 за да стартирате този код, в полето за подкана, моля, изберете колоната с данни, която искате да използвате, вижте екранната снимка:

4, След това кликнете OK бутон, в друго поле за подкана изберете клетка в друг лист, където искате да изведете резултата, вижте екранна снимка:

5, Кликнете на OK бутон, сега редовете, чиято дата е равна или по-голяма от 5 дни от днес, са копирани и поставени в новия лист, както е показано на следната екранна снимка:

Най-добрите инструменти за продуктивност в офиса

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

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Is it possible to do this for an entire workbook if the date is always in the same column on each? If so, what would the VBA code be, or which bit would I change?
This comment was minimized by the moderator on the site
Did you get a reply on this?
This comment was minimized by the moderator on the site
Same here. Would really like an answer!
THANKS ALOT ALREADY EXTENDOFFICe :D
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations