< návrat zpět
MS Excel
Téma: Chyba při výběru v zaznamenaném makru 
Zaslal/a PavelJanec 8.11.2023 12:53
Zdravím, neporadíte mi někdo prosím, proč mi makro hází chybu? Při zaznamenávání makra vyberu několik sloupců, jejichž obsah chci vymazat, ale chci zachovat první řádek. Označím tedy všechny potřebné sloupce, poté shift+odznačím první řádek, který potřebuju zachovat a zmáčknu delete. Vše se odstraní a ukončím záznam makra. Při spuštění mi ale vyhodí chybu na řádku viz:
Range( _
"B2:B1048576,D2:F1048576,J2:J1048576,N2:Q1048576,DK2:DK1048576,DM2:DM1048576,DQ2:DU1048576,DV2:EB1048576,FK2:FN1048576,FP2:FP1048576,FS2:FS1048576,FU2:FY1048576,QM2:QP1048576,QQ2:QU1048576,QV2:RF1048576,RG2:RP1048576,RQ2:SG1048576,SH2:SM1048576,SR2:SS1048576" _
).Select
Děkuji za tipy
Jiří497(8.11.2023 13:49)#055634 
Jakou chybu to vyhodí?
Jak pokračuje ten vzorec za DV - to tu není vidět.
Když vložíte soubor s makrem, líp se bude hledat chyba.
citovat
PavelJanec(8.11.2023 13:56)#055635 
Píše to Run-time error ´1004´
Method ´Range´of object´_Global´failed.
Příloha:
55635_1.png (76kB, staženo 7x)

citovat
elninoslov(8.11.2023 14:32)#055636 
Dĺžka adresy môže byť maximálne veľkosť datového typu Byte, teda 0..255. Vaša adresa má 257 znakov.
Dajte si to na menšie kúsky a do Union
Union(Range("B2:B1048576,D2:F1048576,J2:J1048576,N2:Q1048576,DK2:DK1048576,DM2:DM1048576,DQ2:DU1048576,DV2:EB1048576,FK2:FN1048576,FP2:FP1048576"), _
Range("FS2:FS1048576,FU2:FY1048576,QM2:QP1048576,QQ2:QU1048576,QV2:RF1048576,RG2:RP1048576,RQ2:SG1048576,SH2:SM1048576,SR2:SS1048576")).Selectcitovat
PavelJanec(8.11.2023 14:45)#055637 
Aha, takže by to mělo jít na 2x. Moc díky Elnino. Mě bylo divný, že při méně sloupcích to funguje.
citovat
elninoslov(8.11.2023 14:52)#055639 
Operáciu mazania vykonáte naraz, len tú adresu oblasti rozdelíte na 2 reťazce, teda 2 Range, no naspäť spojené v Union, tak ako som ukázal.
A neviem, čo bude všetko to makro ešte robiť, ale Select nemusíte použiť vôbec, ani tie Scroll. Ideálne by bolo aj označenie listu, aby nedošlo k spusteniu makra na inom liste. Stačí teda iba:
With Worksheets("nazov listu")
Union(.Range("prvá polka textu adresy"), .Range("druhá polka textu adresy")).ClearContents
End Withcitovat
PavelJanec(8.11.2023 14:53)#055640 
Děkuji, určitě vyzkouším.
citovat
elninoslov(8.11.2023 16:05)#055641 
Ešte ma napadlo jedno riešenie
With Worksheets("Hárok1")
Intersect(.Range("B:B,D:F,J:J,N:Q,DK:DK,DM:DM,DQ:DU,DV:EB,FK:FN,FP:FP,FS:FS,FU:FY,QM:QP,QQ:QU,QV:RF,RG:RP,RQ:SG,SH:SM,SR:SS"), .Cells.Resize(Rows.Count - 1).Offset(1, 0)).ClearContents
End Withcitovat
PavelJanec(8.11.2023 17:11)#055642 
Elnino, vy jste prostě borec
citovat