VBA - dotaz na jednoduché makro Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

jerry1989
nováček
Příspěvky: 4
Registrován: březen 15
Pohlaví: Nespecifikováno
Stav:
Offline

VBA - dotaz na jednoduché makro

Příspěvekod jerry1989 » 20 dub 2015 15:31

Dobrý den,
hezky prosím, můžete mi říct, proč mi makro níže, napíše do aktivního listu (list1) Ahoj!!! do buňky A1, místo toho, aby to udělal pro všechny listy mimo ty tři vyjmenované? - netuším kde je chyba - na netu jsem našel stejné makro s tím, že funguje. Dělám něco špatně? nebo je tam opravdu chyba?

Dim ws As Worksheet

For Each ws In Worksheets
If ws.Name <> "List1" And ws.Name <> "List2" And ws.Name <> "Pomocný" Then
Range("A1") = "Ahoj!!!"
End If
Next ws

Do těla cyklu potřebuju napsat složitější funkce ale zatím zápasím s výběrem listů, děkuji předem za odpověď.

Reklama
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3206
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: VBA - dotaz na jednoduché makro

Příspěvekod atari » 20 dub 2015 17:49

Protože příkaz Range("A1") = "Ahoj!!!" zapisuje jen do aktivního listu, a aktivní list je v tomto případě pouze ten, který máš otevřený. Takže si zadej příkaz ws.Select, který při splnění podmínky zaktivní požadovaný list.

Poznámka: Doporučuji přečíst pravidla diskuze, a kody vkládat pres "Code" a kompletní, pokud nejsou dlouhé. Usnadníš práci těm, kterří Ti chtějí pomoci.

Kód: Vybrat vše

Sub Makro1()
Dim ws As Worksheet
For Each ws In Worksheets
    If ws.Name <> "List1" And ws.Name <> "List2" And ws.Name <> "Pomocný" Then
    ws.Select
    Range("A1") = "Ahoj!!!"
    End If
Next ws
End Sub

guest
Pohlaví: Nespecifikováno

Re: VBA - dotaz na jednoduché makro

Příspěvekod guest » 20 dub 2015 23:32

ws.Select? Šmarjá panno, kdo vás ty Selecty učí? Co vám říká Parent, co třeba ws.Range("A1")?

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3206
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: VBA - dotaz na jednoduché makro

Příspěvekod atari » 21 dub 2015 08:53

Učí nás to sám velkej Bill :lol: . Jsem samouk, a začínal jsem studiem prostřednictvím záznamníku maker v Excelu. Ten často využívá metodu Select. A také jsem se to naučil na těchto stránkách http://office.lasakovi.com/.

Metodu Select jsem hodně používal, když jsem vybral například list, a na listu jsem pak prováděl mnoho operací, takže mi to pak ušetřilo trochu kódu. Samozřejmě u tohoto příkladu, kdy se provádí jedna operace, to je naopak. A navíc při použití metody Select, mě pro začátečníka, který se učil VBA, byl ten kód pro pochopení, jak VBA pracuje, srozumitelnější. Pokud je kód rozdělený do více kroků, tak to začátečník rychleji vnímá, alespoň u mě to tak fungovalo.

Ve VBA píšu občas něco jednou za rok, takže co se přitom naučím, zase ak zase během roku z toho něco zapomenu, a umím jen základy. My co "vyrostli" na DOSu bez myši (ti starší zde vědí o čem píšu) to máme s učením strukturovaných jazyků složitější.

Jinak děkuji za zjednodušení, to ws.Range("A1") mě v tu chvíli nenapadlo, jinak bych to napsal taky.

jerry1989
nováček
Příspěvky: 4
Registrován: březen 15
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBA - dotaz na jednoduché makro  Vyřešeno

Příspěvekod jerry1989 » 21 dub 2015 09:26

Děkuji mnohokrát, trošku mě mrzí že jsem na to nepřišel sám. Momentálně se učím podobnou metodou - nahrávám a snažím se porozumět.
Co se týče metody "select", myslím že ve svých makrech bych našel mnohem více zvěrstev, ale prozatím mě stačí, že makro dělá co má. Ještě jednou děkuji.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Jednoduché zaheslování složky v PC
    od Zabral68 » 25 pro 2023 08:58 » v Vše ostatní (bezp)
    3
    2786
    od Zabral68 Zobrazit poslední příspěvek
    25 pro 2023 09:49
  • Pomuže někdo s upravou jednoduche web stranky? Příloha(y)
    od BigSandy » 14 kvě 2023 14:55 » v Programování a tvorba webu
    16
    3825
    od BigSandy Zobrazit poslední příspěvek
    15 kvě 2023 12:33
  • Makro pro myš Rapture Python
    od mmmartin » 27 srp 2023 15:18 » v Problémy s hardwarem
    9
    1126
    od mmmartin Zobrazit poslední příspěvek
    29 srp 2023 16:47
  • Dotaz na nízké FPS
    od Radouz159 » 31 črc 2023 18:59 » v Hry
    18
    3498
    od Radouz159 Zobrazit poslední příspěvek
    01 srp 2023 12:57
  • Dotaz k upgradu PC Příloha(y)
    od renny997 » 08 srp 2023 15:36 » v Rady s výběrem hw a sestavením PC
    5
    1582
    od petr22 Zobrazit poslední příspěvek
    06 zář 2023 19:26

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů