Stránka 1 z 1

EXCEL: Vymazání určité oblasti

Odeslat příspěvekNapsal: 11. 2. 2010 10:50
od Mistr81
Přeji pěkný den,

v Excelu 2003 bych chtěl pomocí VBA vymazat hodnoty v buňkách umístěných v obdélníku, jehož
  • levá horní buňka má souřadnice (3, 1)
  • pravá dolní buňka má souřadnice (u, 6)
To u je proměnná hodnota odvislá od toho, kolik bude vyplněných řádků. Vždy ale bude tabulka začínat na třetím řádku.

Zkoušel jsem to přes kód
Kód: Vybrat vše
List9.Range(Cells(3, 1), Cells(u, 6)).Select
    Selection.ClearContents

leč vždy se mi zobrazila hláška
Obrázek
a v kódu se zvýrazní řádek
Kód: Vybrat vše
List9.Range(Cells(3, 1), Cells(u, 6)).Select


Poradíte mi, prosím, v čem je problém?

Děkuji.

Re: EXCEL: Vymazání určité oblasti

Odeslat příspěvekNapsal: 11. 2. 2010 13:14
od obcasny_navstevnik
Uz v tematu viewtopic.php?f=958&t=1076210 jsi mel problemy s nazvy listu, a uvadel jsem ti:
Neni to jedno.
List3.Select - je vybran objekt List3("nejakynazev"), koukni v editoru VBA na pole Project - VBAProject

Worksheets("Ahoj").Select - je vybran list s nazvem "Ahoj" bez ohledu na jeho poradi v okne Excelu

Worksheets(1).Select - je vybral list, ktery je v okne Excelu v poradi prvni zleva (bez ohledu na jeho nazev nebo objekt)

Pokud chces pouzit objekt List9, nejprve musis v teto programove konstrukci tento objekt vybrat a pak vybrat blok bunek:
Kód: Vybrat vše
List9.Select
Range(Cells(3, 1), Cells(u, 6)).Select
    Selection.ClearContents

Navic tato konstrukce bude adresovat blok bunek takto:
u=1 > $A$1:$F$3
u=2 > $A$2:$F$3
u=3 > $A$3:$F$3
...
u=6 > $A$3:$F$6
coz asi nechces; jiste to lze upravit (a take zjednodusit: Range(Cells(3, 1), Cells(u, 6)).ClearContents), ale VBA je objektove orientovany, tak to vyuzij :
Kód: Vybrat vše
Dim Blk As Range
...
Set Blk = Worksheets("list3").Range("a3") ' zaciname na radku 3 ve sloupci A
Blk.Resize(u, 6).ClearContents ' odstrani blok s u radky a 6 sloupci: A3:F(3+u-1)
...
Set Blk = Nothing ' odstranit objektovou promennou z pameti

a podle nazvu listu vim, kde jsem.

Re: EXCEL: Vymazání určité oblasti

Odeslat příspěvekNapsal: 12. 2. 2010 09:26
od Mistr81
Občasný návštěvníku, díky.

Holt jsem tam neměl ten řádek List9.Select :-(

Nakonec jsem to však udělal tím Tvým návrhem kódu, který efektně funguje. Díky za to.

Re: EXCEL: Vymazání určité oblasti

Odeslat příspěvekNapsal: 20. 2. 2010 10:50
od petrfilipi
Pokud mi něco ve VBA nefunguje, tak to zkusím vytvořít pomocí Záznamu makra a pak se podívám, jak je to makro napsané a tu potřebnou část kódu zkopíruji do svého makra.

Petr Filipi

Re: EXCEL: Vymazání určité oblasti

Odeslat příspěvekNapsal: 20. 2. 2010 11:01
od Mistr81
petrfilipi píše:Pokud mi něco ve VBA nefunguje, tak to zkusím vytvořít pomocí Záznamu makra a pak se podívám, jak je to makro napsané a tu potřebnou část kódu zkopíruji do svého makra.

Ano, po dřívějším upozornění na tuto skutečnost Občasným návštěvníkem, volím stejný postup.