Excel - makro za kopiranje vrstic in stolpcev

Težava

Delam na Macro, da kopiram iz enega delovnega zvezka (list) in ga prilepim v drug delovni zvezek (list)

Office 2007 in Windows XP

V prvem delovnem zvezku imam vse podatke, ki so v skladu z zahtevami. se filtrira. Kako v makru prepoznati kopiranje zapisov »rezultat«? Ti zapisi rezultatov se vedno spreminjajo.

Snemam makro s temi koraki:

  • 1. odprite output.xlsx (ciljni delovni zvezek)
  • 2. ctrl + A (za izbiro vseh podatkov, ki že obstajajo) in počistite (vse)
  • 3. izvorni delovni zvezek (input.xlsm) kopija zapisov rezultatov
  • 4. prilepite posebno v ciljni delovni zvezek
  • 5. Souce delovni zvezek in ustavite snemanje makra

Preostanek makra deluje dobro, problem je, kako nastaviti obseg zapisov rezultatov, ki jih lahko rečemo, je dinamičen.

Spodaj je makro, vendar je njegova samodejno ustvarjena koda:

 Pod Macro1 () »Macro21 Macro« »Delovni zvezki.Odprite ime datoteke: = _« O: dataorderrefList-output.xltx »_, Uredljivo: = True Selection.CurrentRegion.Select Selection.Clear Range (» A1 «). Activate Selection.CurrentRegion.Select Selection.Copy Windows ("refList-output.xltx") Aktiviraj izbor.PasteSpecial Paste: = xlPasteColumnWidths, Operation: = xlNone, _ SkipBlanks: = False, Transpose: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteFormats, Operation: = xlNone, _ SkipBlanks: = False, Transponiraj: = False Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False Range ( Izberite Application.CutCopyMode = False ActiveWorkbook.Save Windows ("ReferenceList.xlsm") Aktivirajte obseg ("Table_Query_from_MS_Access_Database [#Headers, [Order No]]"). 

Deluje v redu, vendar moram opraviti izbor na podlagi zapisov rezultatov in drugega oblikovanja.

Rešitev

Poskusil sem svoj predlog. ko MERELY izberete filtrirano izbiro podatkov vključuje tudi skrite celice (skrite zaradi filtriranja), namesto tega morate uporabiti lastnost "specialcells", kot sem predlagal. lahko spreminjate na tej podlagi.

Obstaja tudi določba BREZ aktiviranja različnih oken ali izbiranje različnih območij.

Imam alternativo za pretekli del vašega makra

 ThisWorkbook.Worksheets ("sheet1") .Koristne delovne knjige ("book4"). Delovni listi ("sheet1"). Razpon ("A1"). PasteSpecial Paste: = xlPasteValues, Paste: = xlPasteColumnWidths, Paste : = xlPasteFormats _, Prilepi: = xlPasteColumnWidths 

Če sta knjigi shranjeni v knjigah, uporabite "book4.xls" ali "book4.xlsm" "" ta delovni zvezek pomeni modul delovnega zvezka, kjer je makro parkiran, lahko poskusite spremeniti makro.

Opomba

Hvala za venkat1926 za ta nasvet na forumu.

Prejšnji Članek Naslednji Članek

Top Nasveti