Zdravím všechny ochotné lidi, kteří mi mohou pomoct. Napsal jsem makro v VBA pro Excel 2003, které něco vypočítáva (řádově asi 3 sekundy) a na konci má toto makro zobrazit zprávu o ukončení výpočtu. V ladícím modu, když krokuji každý řádek makra, se toto okénko zobrazí a čeká na odkliknutí - přesně tak, jak to chci. Když však makro spustím přes asociované tlačítko, tak výpočet sice proběhne (zobrazí se změněné hodnoty po výpočtu), ale ukončující dialog ne. Nevíte proč? Na tomto fóru jsem odpověď nemohl najít. Děkuji za smysluplné odpovědi.
Konec makra je následující:
...
Text1 = "Výpočet ukončen"
Text2 = "Zpráva"
Response = MsgBox(Text1, 0, Text2)
Makro v Excelu funguje pouze v Debug modu Vyřešeno
Makro v Excelu funguje pouze v Debug modu
Potřebujete jinou pomoc při řešení problému ve Windows 10? Stáhněte si soubor Win10-finty.
-
- Level 4
- Příspěvky: 1142
- Registrován: srpen 08
- Pohlaví:
- Stav:
Offline
Re: Makro v Excelu funguje pouze v Debug modu
Pricinou muze byt to, ze v bufferu klavesnice je ulozen stisk klavesy Enter (mezernik) v dobe, nez je zobrazena zprava o ukonceni vypoctu. Zobrazena zprava ocekava stisk klavesy (enter, mezernik), a protoze v buferu klavesnice je tento znak ulozen, precte a zpravu ukonci. Overit to muzes vlozenim radku kodu s dalsi zpravou a v dobe pozastaveni behu kodu stiskni mezernik, zobrazi se az druha zprava:
Neni nekde v behu kodu pouzit prikaz SendKeys "~" ? Ukazka:
Pokud bude zaktivovan i druhy prikaz SendKeys "~", tak se nezobrazi ani druha zprava.
Samozrejme pricina muze byt i jinde, ale vice informaci jsi neposkytl.
Kód: Vybrat vše
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Sub aa()
Text1 = "Vypocet ukoncen"
Text2 = "Zpráva"
' v dobe pozastaveni behu makra stiskni mezernik
Sleep 1000
response = MsgBox(Text1, 0, Text2)
response = MsgBox("Druha zprava")
End Sub
Neni nekde v behu kodu pouzit prikaz SendKeys "~" ? Ukazka:
Kód: Vybrat vše
Sub aa()
Text1 = "Vypocet ukoncen"
Text2 = "Zpráva"
SendKeys "~" ' Enter
' SendKeys "~" ' Enter
response = MsgBox(Text1, 0, Text2)
response = MsgBox("Druha zprava")
End Sub
Pokud bude zaktivovan i druhy prikaz SendKeys "~", tak se nezobrazi ani druha zprava.
Samozrejme pricina muze byt i jinde, ale vice informaci jsi neposkytl.
Re: Makro v Excelu funguje pouze v Debug modu Vyřešeno
Bohužel, nezabralo ani Sleep ani Application.Wait, ale problém jsem vyřešil úplně náhodou. V hlavním chodu jsem totiž vyvolal proceduru pro výpočet příkazem Call a až po něm jsem uvedl příkaz pro zobrazení zprávy - tato varianta však nefungovala, jak jsem uvedl. Zkusil jsem přesunout příkaz Msg z hlavního chodu na konec procedury pro výpočet a ejhle - všechno funguje. Akorát mi uniká logika tohoto problému.
Takže shrnuto:
1. původní varianta:
Sub Main()
...
Call Vypocet()
Response Msg("Výpočet ukončen",0,"Zpráva")
End Sub
Sub Vypocet()
...
End Sub
2. opravená varianta:
Sub Main()
...
Call Vypocet()
End Sub
Sub Vypocet()
...
Response Msg("Výpočet ukončen",0,"Zpráva")
End Sub
Děkuji za ochotu
Takže shrnuto:
1. původní varianta:
Sub Main()
...
Call Vypocet()
Response Msg("Výpočet ukončen",0,"Zpráva")
End Sub
Sub Vypocet()
...
End Sub
2. opravená varianta:
Sub Main()
...
Call Vypocet()
End Sub
Sub Vypocet()
...
Response Msg("Výpočet ukončen",0,"Zpráva")
End Sub
Děkuji za ochotu
Potřebujete jinou pomoc při řešení problému ve Windows 10? Stáhněte si soubor Win10-finty.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 1
- 3327
-
od Grimm
Zobrazit poslední příspěvek
28 čer 2024 23:30
-
- 0
- 2639
-
od LukM
Zobrazit poslední příspěvek
19 říj 2024 14:03
-
-
automaticke nastaveni velikosti komentare v Excelu
od Mikik Block » 04 zář 2024 15:17 » v Kancelářské balíky - 0
- 3180
-
od Mikik Block
Zobrazit poslední příspěvek
04 zář 2024 15:17
-
-
- 6
- 4649
-
od 4Lift
Zobrazit poslední příspěvek
10 úno 2025 21:09
-
-
Náhodné zamrznutí PC, řešením je pouze tvrdý restart.
od Sipsisipi » 21 srp 2024 19:12 » v Problémy s hardwarem - 10
- 4316
-
od Sipsisipi
Zobrazit poslední příspěvek
25 srp 2024 10:37
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 6 hostů