VisualBasic Duplicate Declaration

jonesjunior

Lt. Commander
Registriert
Okt. 2008
Beiträge
1.699
Hallo,

ich versuche gerade etwas zu programmieren und komme nicht weiter.
Es soll eine Info-Box werden, in der steht: Dies ist Meldung 1.
Wenn man auf OK klickt soll kommen: Dies ist Meldung 2 und danach nochmal mit einer 3.

Code:
Sub Aufgabe()
    Dim zähler As Integer
    Dim myPrompt As String
    myPrompt = "Dies ist Meldung"
    For zähler = 1 To 3 Step 1
        MsgBox CStr(zähler), vbInformation, "modul:test01,sub:Aufgabe"
    Next
    completePrompt = myPrompt & " " & CStr(zähler) & "."
    Dim completePrompt As String
    MsgBox completePrompt, vbInformation, "modul:test01,sub:Aufgabe"
End Sub

Ich bekomme immer die Fehlermeldung:
Compile error: Duplicate declaration in current scope.

Was muss ich verändern?
Danke im Voraus.

MfG
Jones
 
Diese Zeile rausstreichen: "Dim zähler As Integer"

Du musst einen Zähler nicht deklarieren, das geschieht automatisch
Ergänzung ()

Die Zeile: "Dim completePrompt As String"
gehört übrigens an den Anfang des Codes, du hast dieser Variable einen wert zugewiesen, bevor sie deklariert wurde
 
Zuletzt bearbeitet:
Danke, jetzt kommt keine Fehlermeldung mehr.

Jedoch habe ich in dem Info Fenster nur 1,2,3 stehen, der Text fehlt.
 
Zuletzt bearbeitet:
Du definierst completePrompt nachdem du es schon mal verwendet hast. Ich würde die 2 Zeilen tauschen
completePrompt = myPrompt & " " & CStr(zähler) & "."
Dim completePrompt As String
 
Code:
Sub Aufgabe()
    Dim myPrompt As String
    myPrompt = "Dies ist Meldung"
    For zähler = 1 To 3 Step 1
    
    Dim completePrompt As String
    completePrompt = myPrompt & " " & CStr(zähler) & "."
    MsgBox completePrompt, vbInformation, "modul:test01,sub:Aufgabe"
    Next
End Sub

Es hat so geklappt! :)
 
Könntest deine MSGBOX so umbauen:

MsgBox(myPrompt & " " & zähler, vbInformation, "modul:test01,sub:Aufgabe")


Dann haste den Text....
 
Letzte Frage, dann nerv ich euch nicht mehr :D

Ich brauche das:
Dies ist Meldung 1 1.
Dies ist Meldung 1 2.
Dies ist Meldung 2 1.
Dies ist Meldung 2 2.

Geht das auch mit For...Next und mit dim, Integer,String oder brauche ich da etwas ganz anderes?
 
du musst einfach 2 For schleifen schachteln, dann bekommste das auch hin :)

Code:
Sub Aufgabe()
    Dim myPrompt As String
    myPrompt = "Dies ist Meldung"
    For i = 1 To 3 Step 1
      For j = 1 To 3 Step 1
          Dim completePrompt As String
          completePrompt = myPrompt & " " & i & " " & j & "."
          MsgBox completePrompt, vbInformation, "modul:test01,sub:Aufgabe"
       Next
    Next
End Sub
 
Wow, vielen Dank!! :)
 
Wenn du über Integer iterierst in deiner For-Schleife, dann musst du die Step-Width nicht angeben, dann passiert das automatisch mit dem Inkrement um den Zähler 1 und üblicherweise beginnt man bei 0 zu zählen, nicht erst bei 1...

Und weiterhin kannst du deinen Code kürzen und damit lesbarer machen, wenn du in die Zeile der Deklaration gleich die Zuweisung machst.
Also in deinem Fall:
Code:
Dim myPrompt As String = "Dies ist Meldung"
 
Zurück
Oben