Excel - Makro na kopírovanie riadkov a stĺpcov

Problém

Pracujem na makre kopírovať z jedného zošita (hárok) a vložiť do iného zošita (hárok)

Office 2007 a Windows XP

V prvom zošite mám všetky údaje, ktoré podľa reqs. sa prefiltruje. Ako zistiť v makre skopírovať záznamy o výsledkoch? Tieto záznamy o výsledkoch sa vždy menia.

Nahrávam makro pomocou týchto krokov:

  • 1. otvorte output.xlsx (cieľový zošit)
  • 2. ctrl + A (výber všetkých údajov, ktoré sú tam už) a vymazanie (všetkých)
  • 3. zdrojový zošit (input.xlsm) kopírovanie záznamov o výsledkoch
  • 4. Vložiť špeciálny cieľový zošit
  • 5. Souce zošit a zastaviť nahrávanie makro

Zvyšok makra je v poriadku, problém je, ako nastaviť rozsah záznamov výsledkov, ktoré môžete povedať, je dynamický.

Nižšie je makro, ale jeho automaticky generovaný kód:

 Sub Macro1 () '' Macro21 Makro '' Workbooks.Open Názov súboru: = _ "O: dataorderrefList-output.xltx" _, Upraviteľné: = True Selection.CurrentRegion.Select Selection.Clear Range ("A1"). Aktivovať Selection.CurrentRegion.Select Selection.Copy Windows ("refList-output.xltx") Aktivovať Selection.PasteSpecial Paste: = xlPasteColumnWidths, Operácia: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteFormats, Operácia: = xlNone, _ SkipBlanks: = False, Transpose: = False Selection.PasteSpecial Paste: = xlPasteValues, Operácia: = xlNone, SkipBlanks _: = False, Transpose: = False Range (" Vyberte položku Application.CutCopyMode = False ActiveWorkbook.Save Windows ("ReferenceList.xlsm") Aktivujte rozsah ("Table_Query_from_MS_Access_Database [#Headers, [Order No]]"). 

Funguje to dobre, ale musím vykonať výber na základe záznamov o výsledkoch a iných formátovaní.

Riešenie

Vyskúšali môj návrh. keď MERELY vyberiete filtrovaný výber dát obsahuje skryté bunky tiež (skryté kvôli filtrovaniu), namiesto toho musíte použiť "specialcells" majetku, ako navrhol môj. môžete na tomto základe upraviť.

Existuje aj ustanovenie BEZ aktivácie rôznych okien alebo výberu rôznych rozsahov.

Mám dávať alternatívu pre pastespecial časť vášho makra

 ThisWorkbook.Worksheets ("sheet1") UsedRange.SpecialCells (xlCellTypeVisible) .Kopírovať zošity ("book4") Pracovné hárky ("sheet1") Rozsah ("A1"). : = xlPasteFormats _, Paste: = xlPasteColumnWidths 

Ak sú dve knihy uložené knihy, mali by ste použiť "book4.xls" alebo "book4.xlsm" "tento pracovný zošit znamená, že modul zošita, v ktorom je makro zaparkované, môžete skúsiť zmeniť makro.

Poznámka

Vďaka venkat1926 za tento tip na fóre.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy