Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Makra ve Wordu

Zdravím, chtěla bych poprosit zkušenější uživatele o radu. Chci si ve Wordu (2007) nahrát makro. Jednoduché, které z každého odstavce ponechá první slovo a zbytek smaže. Základ mám a funguje mi tak, jak si představuji. Vypadá takto:

Sub Makro1()
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.TypeParagraph
End Sub

Toto samozřejmě provede akci jednou a pak se musí spustit znovu. Teď bych ale potřebovala, aby se opakovalo automaticky stále dokola, dokud nedojde na konec dokumentu. Zkoušela jsem zápis cyklu pomocí "Do while/until" a "Loop":

Sub Makro1()
Do While Not EOF(1)
Selection.MoveRight Unit:=wdWord, Count:=1
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Selection.TypeParagraph
Loop
End Sub

ale toto mi stále vrací chybu "Runtime error 52. Bad file name or number". Prosím poraďte, co mám špatně. VBA neumím, zápisy zkouším metodou pokus-omyl. Je tam nutné použít "Open"? Ale proč, soubor se zdrojovým textem je otevřený a makro spouštím z něj... Navíc půjde pokaždé o jiný soubor, tak bych musela pokaždé přepisovat to "Open"?
Omlouvám se za lamácký dotaz, ale programování vůbec neumím :-(

Předmět Autor Datum
Vyřešeno, na jiném fóru mi uživatel poradil toto: Do While Selection.End < (ActiveDocument.Content.…
shaula 01.01.2018 20:02
shaula
Díky, že se o řešení podělila s ostatními. Tak by to mělo být....
host 01.01.2018 20:10
host
Sice už vyřešeno, ale další možnost. Sub Makro1() Application.ScreenUpdating = False Dim i As Long… poslední
Siki83 01.01.2018 20:23
Siki83

Sice už vyřešeno, ale další možnost.


Sub Makro1()
Application.ScreenUpdating = False

Dim i As Long

For i = 1 To ActiveDocument.Paragraphs.Count
    Selection.MoveRight Unit:=wdWord, Count:=1
    Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend
    Selection.TypeParagraph
Next i

Application.ScreenUpdating = True
End Sub

Zpět do poradny Odpovědět na původní otázku Nahoru