Salt la conținutul principal

Cum să copiați rânduri și să lipiți pe o altă foaie în funcție de dată în Excel? 

Presupunând că am o serie de date, acum vreau să copiez întregul rând pe baza unei date specifice și apoi să le lipesc într-o altă foaie. Aveți idei bune pentru a face față acestui loc de muncă în Excel?

Copiați rândurile și lipiți-le pe o altă foaie pe baza datei de astăzi

Copiați rândurile și lipiți-le pe altă foaie dacă data este mai mare decât astăzi


Copiați rândurile și lipiți-le pe o altă foaie pe baza datei de astăzi

Dacă trebuie să copiați rândurile dacă data este astăzi, vă rugăm să aplicați următorul cod VBA:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în fereastra modulului.

Cod VBA: copiați și lipiți rânduri pe baza datei de astăzi:

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. După lipirea codului de mai sus, vă rugăm să apăsați F5 tasta pentru a rula acest cod și va apărea o casetă de solicitare pentru a vă reaminti să selectați coloana de date pe care doriți să copiați rândurile pe baza, vedeți captura de ecran:

4. Apoi apasa OK buton, într-o altă casetă de prompt, selectați o celulă dintr-o altă foaie în care doriți să afișați rezultatul, vedeți captura de ecran:

5. Apoi faceți clic pe OK butonul, acum, rândurile a căror dată este astăzi sunt lipite simultan în noua foaie, consultați captura de ecran:


Copiați rândurile și lipiți-le pe altă foaie dacă data este mai mare decât astăzi

Pentru a copia și lipi rândurile a căror dată este mai mare sau egală cu astăzi, de exemplu, dacă data este egală sau mai mare de 5 zile de astăzi, apoi copiați și lipiți rândurile pe o altă foaie.

Următorul cod VBA vă poate face o favoare:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în fereastra modulului.

Cod VBA: copiați și lipiți rânduri dacă data este mai mare decât astăzi:

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

notițe: În codul de mai sus, puteți modifica criteriile, cum ar fi mai puțin decât astăzi sau numărul de zile de care aveți nevoie în Dacă TypeName (xVal) = "Date" And (xVal <> "") And (xVal> = Date And (xVal <Date + 5)) Atunci cod script.

3. Apoi apăsați F5 tasta pentru a rula acest cod, în caseta de solicitare, vă rugăm să selectați coloana de date pe care doriți să o utilizați, consultați captura de ecran:

4. Apoi apasa OK buton, într-o altă casetă de prompt, selectați o celulă dintr-o altă foaie în care doriți să afișați rezultatul, vedeți captura de ecran:

5. clic pe OK butonul, acum, rândurile a căror dată este egală sau mai mare de 5 zile de astăzi au fost copiate și lipite în noua foaie, după cum se arată în următoarea captură de ecran:

Cele mai bune instrumente de productivitate de birou

🤖 Kutools AI Aide: Revoluționați analiza datelor pe baza: Execuție inteligentă   |  Generați codul  |  Creați formule personalizate  |  Analizați datele și generați diagrame  |  Invocați funcțiile Kutools...
Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

Descriere


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
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