Announcement

Collapse
No announcement yet.

Mithilfe eines Array an ein Bookmark springen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mithilfe eines Array an ein Bookmark springen

    Hi Leute,
    ich suche schon ne weile nach einer Loesung fuer ein Problem, bezueglich Makro-Programmierung in VBA Word 2003. Und zwar will ich an eine Stelle in einem Text, welches durch ein Bookmark gekennzeichnet ist, springen. Der normale Code fuer einen solchen Sprung ist ja folgender:


    Code:
    Code:
    Selection.GoTo What:=wdGoToBookmark, Name:="Name"
    Nun will ich allerdings mittels eines Array zu einem vorher bestimmten Bookmark springen. Hab da mal folgendes vorbereitet:


    Code:
    Code:
    Private Sub CheckBox7_Click()
        
        bookmarkarray(1, 2, 3, 4) As Bookmarks 'oder vielleicht eher String??
            Dim n As Integer
            n = 2                 'so als test ob die uebergabe funktioniert
        Selection.GoTo What:=wdGoToBookmark, Name:="bookmarkarray(n)"
    End Sub
    Die checkbox ist nur mal so als test..also kommt spaeter was andres hin.
    Natuerlich funktiniert das so nicht haha.. kann mir jemand von euch helfen? Ich bekommen immer die fehlermeldung "Statement invalid outisde typeblock".Ohne die Fehlermeldung wuerde es denke ich aber auch nicht funktionieren, deswegen waere ich seeeeeeehhr gluecklich ueber etwas Hilfe von euch.

    Gruss marko

    --------------------------------------------------------------------------------

  • #2
    Hallo angelhand

    Die Fehlermeldung die Du bekommst, hatte ich auch, nachdem ich versucht habe das Array so wie Du Deklarieren und im gleichen Schritt zu initialisieren. Versuch das lieber in zwei Schritten. Ist sicherer. Das kommt aber weiter unten gleich nochmal :P

    Du hast die Bookmarks vorher schon deklariert. In deinem Array sind ja die verschiedenen Strings dafür schon vorhanden die Du mit einem "n" Durchnummerierst.

    Was mir in dem Quelltext gerade aufgefallen ist: Die Zeile

    Selection.GoTo What:=wdGoToBookmark, Name:="bookmarkarray(n)"

    Du hast beim bookmarkarray(n) Anführungszeichen stehen. Diese brauchst du nicht, wenn Du eine Variable oder ein Array mit dessen Inhalt hinstellst. Sonst versucht VBA zur Sprungmarke "bookmarkarray(n)" zu springen (und zwar genauso müsstest du die Sprungmarke auch nennen ). Ich glaub das war nicht im Sinne des Erfinders.

    Deklariere es als String, weil Du auch Strings verwendest, und nicht ein Bookmark. Bookmark dürfte wohl eher die ganze Zeile sein, mit der du versucht hinzuspringen.
    Befülle/Initialisiere Dein Bookmarkarray richtig. Also ungefähr so

    bookmarkarray(1) = "Sprungmarke1"
    bookmarkarray(2) = "Sprungmarke2"
    usw.

    Und zum Springen benutzt du dann folgende Zeile

    Selection.GoTo What:=wdGoToBookmark, Name:=bookmarkarray(1)
    Selection.GoTo What:=wdGoToBookmark, Name:=bookmarkarray(2)
    usw.

    Der ganze Code sollte dann ungefähr so aussehen.

    Code:
    Private Sub CheckBox7_Click()
        
        Dim bookmarkarray(4) As String
        bookmarkarray(1)="Sprungmarke1" 'Hier statt Sprungmarke1 den Namen Deiner ersten Sprungmarke eintragen
        bookmarkarray(2)="Sprungmarke2" 'Hier statt Sprungmarke2 den Namen Deiner zweiten Sprungmarke eintragen
        Dim n As Integer
        n = 2                 'so als test ob die uebergabe funktioniert
        Selection.GoTo What:=wdGoToBookmark, Name:=bookmarkarray(n)
    End Sub
    Ich hoffe es hilft Dir.

    Comment

    Working...
    X