< návrat zpět

MS Excel


Téma: Chyba při výběru v zaznamenaném makru rss

Zaslal/a 8.11.2023 12:53

PavelJanecZdraví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

Zaslat odpověď >

#055634
avatar
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
#055635
PavelJanec
Píše to Run-time error ´1004´
Method ´Range´of object´_Global´failed.
Příloha: png55635_1.png (76kB, staženo 6x)
55635_1.png
citovat
#055636
elninoslov
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")).Select
citovat
#055637
PavelJanec
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
#055639
elninoslov
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 With
citovat
#055640
PavelJanec
Děkuji, určitě vyzkouším.citovat
#055641
elninoslov
Ešte ma napadlo jedno riešenie 1
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 With
citovat
#055642
PavelJanec
Elnino, vy jste prostě borec 1citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje