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
Î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...
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!