Lipirea într-un set de date filtrate - Sfaturi Excel

Joe întreabă dacă există o modalitate de a face o operație de lipire filtrată în Excel.

Spuneți că aveți 1000 de înregistrări pe Sheet1. Filtrați setul de date pentru a vă afișa numai înregistrările cu ProdID = Z. Selectați setul de date și lipiți pe Sheet2. În mod frumos, Excel aduce doar înregistrările vizibile, deci aveți un bloc alăturat de celule. Poate că faceți unele transformări în acele înregistrări și acum trebuie să le lipiți din nou în setul de date original. Excel NU oferă nicio modalitate ușoară de a face acest lucru. Macrocomanda din acest videoclip vă va ajuta cu procesul. Am înregistrat Learn Excel Podcast episodul 977 care prezintă o macro pentru a ajuta la această acțiune. Aici veți găsi videoclipul și codul utilizat în registrul de lucru Excel.

Urmăriți videoclipul

Copiați acest cod

Am ajustat puțin codul din videoclip. Aceasta presupune că veți copia rândul de antet și înregistrările filtrate din Sheet1 în Sheet2:

Sub PasteBack() ' Assumes the Filterered Sheet1 is active Set DataToCopy = Sheet2.Range("A1").CurrentRegion n = 2 ' index for range to copy from Sheet2 one row at a time, skipping headers For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row ' row 1 is header If Not Rows(i).Hidden Then DataToCopy.Offset(n - 1).Resize(1).Copy Cells(i, 1) n = n + 1 If n> DataToCopy.Rows.Count Then Exit Sub End If Next i End Sub

O soluție fără macrocomenzi

După difuzarea primului videoclip, Gary a trimis o nouă soluție folosind Paste Skip Blanks. Urmăriți videoclipul aici :.

Articole interesante...