Note: The other languages of the website are Google-translated. Back to English

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 Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

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!
fundul officetab
Comentarii (3)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Este posibil să faceți acest lucru pentru un întreg registru de lucru dacă data este întotdeauna în aceeași coloană pentru fiecare? Dacă da, care ar fi codul VBA sau ce bit aș schimba?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ai primit un răspuns la asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
La fel şi eu. Chiar mi-ar plăcea un răspuns!
MULTUMESC MULT DEJA EXTENDOFFICe :D
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL