Excel - ridade ja veergude kopeerimiseks mõeldud makro

Probleem

Ma töötan makro abil, et kopeerida ühest töövihikust (lehest) ja kleepida mõnele teisele töövihikule (leht)

Office 2007 ja Windows XP

Esimeses töövihikus on kõik andmed, mis vastavalt reqs'ile. filtreeritakse. Kuidas öelda makro abil tulemuste kirjete kopeerimiseks? Need tulemuste kirjed muutuvad alati.

Salvestan nende sammudega makro:

  • 1. avage väljund.xlsx (sihttöögrupp)
  • 2. ctrl + A (kõigi juba valitud andmete valimiseks) ja selge (kõik)
  • 3. allika töövihik (input.xlsm) tulemuste kirjete kopeerimine
  • 4. kleepige spetsiaalne sihtmärgi töövihikusse
  • 5. Kastke töövihik ja lõpetage makro salvestamine

Ülejäänud makro töötab hästi, probleem on selles, kuidas määrata tulemuste kirjete vahemikku, mida võib öelda, on dünaamiline.

Allpool on makro, kuid selle automaatne genereeritud kood:

 Sub Macro1 () '' Macro21 makro '' töövihikud. Avage failinimi: = _ "O: dataorderrefList-output.xltx" _, redigeeritav: = tõeline valik.Käesolev regioon.Valige valik.Selge vahemik ("A1"). "ReferenceList.xlsm") .Select.CurrentRegion.Select Selection.Copy Windows ("refList-output.xltx") Aktiveeri valik.PastaSpetsiaalne kleepimine: = xlPasteColumnWidths, Operation: = xlNone, _ SkipBlanks: = False, Transponeeri: = False Selection.PasteSpecial Paste: = xlPasteFormats, Toiming: = xlNone, _ SkipBlanks: = False, Transponeeri: = False Selection.PasteSpecial Paste: = xlPasteValues, Operation: = xlNone, SkipBlanks _: = False, Transpose: = False Range (" Valige Application.CutCopyMode = False ActiveWorkbook.Save Windowsi salvestamine ("ReferenceList.xlsm") Aktiveeri vahemik ("Table_Query_from_MS_Access_Database [#Headers, [Order No]]"). 

See töötab hästi, kuid ma pean tegema valiku tulemuste kirjete ja muu vormingu alusel.

Lahendus

On proovinud minu ettepanekut. kui valite filtreeritud andmete valiku, sisaldab valik ka varjatud lahtreid (filtreerimise tõttu peidetud), selle asemel peate kasutama "specialcells" omadust, nagu soovitas minu. kas saate selle põhjal muuta.

Samuti on olemas säte ilma akende aktiveerimata või erinevate vahemike valimisel.

Mul on alternatiiviks teie makro erilisele osale

 ThisWorkbook.Worksheets ("sheet1") UsedRange.SpecialCells (xlCellTypeVisible) .Kopeerige töövihikuid ("book4"). Töölehed ("sheet1"). Range ("A1") PasteSpecial Paste: = xlPasteValues, Kleebi: = xlPasteColumnWidths, Paste : = xlPasteFormats _, Kleebi: = xlPasteColumnWidths 

Kui need kaks raamatut on salvestatud raamatud, peaksite kasutama "book4.xls" või "book4.xlsm" ". See töövihik tähendab töövihiku moodulit, kus makro on pargitud.

Märge

Täname venkat1926 selle foorumi vihje eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited