Stránka 1 z 1
VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 17 zář 2014 15:58
od vonv
Ahoj,
možná zbytečný/hloupý dotaz, ale lze v kódu pojmenovat oblast na neaktivním listu nebo ho musím napřed aktivovat?
např.:
(je-li aktivní jiný list)
Set oblast = Sheets("Položky").Range(Cells(1, 1), Cells(3, 3))
Bez aktivace daného listu mi to háže chybu č 1004.
Oblast je proměnlivá a při určení velikosti oblasti pomocí Cells pak používám proměnné.
Motivace je, aby mi při běhu kódu neproblikávala okna - jen drobnost, ale chci na to přijít.
Díky.
Re: VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 17 zář 2014 18:16
od cmuch
Ten tvůj zápis nahraď
Kód: Vybrat vše
Set oblast = Sheets("Položky").Range(Cells(1, 1).Address & ":" & Cells(3, 3).Address)
Pokud nechceš aby ti sešit problikával při běhu makra,
tak na začátek dej
Application.ScreenUpdating = False a nakonec
Application.ScreenUpdating = True
Re: VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 17 zář 2014 23:49
od guest
Pánové, co takhle zaměřit se na Cells.. k čemu se vztahuje bez uvedení rodiče?
Re: VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 18 zář 2014 06:08
od cmuch
Tady je zrovna jedno k čemu (k jakému rodiči) se vztahuje,
pomocí cells adresy beru adresu pro range.
Re: VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 18 zář 2014 07:07
od vonv
no... range (i cells v zápisu jako hranice oblasti) je vlastnostní (work)sheets a bez uvedení se vztahuje k aktivnímu lilstu. Proto jsem tam uvedl plnou "cestu" s myšlenkou, že tak nemusím daný list aktivovat,což se ukázalo jako mylná úvaha...
opravte mě případně.
díky.
Re: VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 18 zář 2014 10:56
od lubo.
No, tak cestu jsi neuvedl (tam, kde měla být):
Kód: Vybrat vše
Set oblast = Range(Sheets("List2").Cells(1, 1), Sheets("List2").Cells(3, 3))
Osobně dávám psaní teček přednost. Kód se může měnit, kopírovat, spouštět v různých podmínkách, ...Pokud tam ten rodič je, je obvykle riziko chyby menší nebo se apoň případná chyba lépe hledá.
Re: VBA Excel - pojmenování oblasti na NEaktivním listu.
Napsal: 18 zář 2014 16:22
od guest
No striktně rodiče neuvedl ani jeden z vás.
Kód: Vybrat vše
Sub Ukazka()
Dim Oblast As Range
With Worksheets("Položky")
Set Oblast = .Range(.Cells(1, 1), .Cells(3, 3))
End With
Oblast.Interior.ColorIndex = 5
End Sub
Jinak jsem přesvědčen, že by oblast šla definovat lépe.
Kód: Vybrat vše
Sub Ukazka2()
Dim Oblast As Range
Set Oblast = Worksheets("Položky").Cells(1).Resize(3, 3)
Oblast.Interior.ColorIndex = 6
End Sub
A nejjednodušší je oblast pojmenovat a nemusíte řešit nic, stačí se jen odkázat Range("Oblast").