Frage von SnakeOfficial, 11

Die anweisung ist in einem Namespace ungültig?

Ich habe eine Anleitung aus dem Internet für ein Zahlen generator kopiert

Dim Zahl As Integer 'zufallsgenerierte Zahl Dim Counter As Integer 'Zähler der Versuche

Private Sub btn_click_Click()

Dim Eingabe As Integer 'Eingegebene Zahl

'Zufallszahl generieren If Zahl = 0 Then Zahl = Int((Rnd() * 100) + 1) End If

'geschätzte Zahl eingeben Eingabe = tb_eingabe.Value

'Gültigkeitsprüfung If Eingabe > 100 Or Eingabe < 1 Then MsgBox ("Bitte geben Sie eine Zahl zwischen 1 und 100 ein!") tb_eingabe.Value = "" Else 'Richtige Eingabe If Eingabe = Zahl Then Cells(Counter + 2, 1) = Eingabe Cells(Counter + 2, 2) = "geschätzte Zahl richtig!"

    'Abfrage zum erneuten Spielen
    Abfrage = MsgBox("Richtig! Gebrauchte Versuche: " & Counter + 1 & vbLf & "Wollen Sie noch einmal spielen?", vbYesNo)
    If Abfrage = vbNo Then
        Application.Quit
    Else
        Columns("A:B").Select
        Selection.ClearContents
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "geschätzte Zahl"
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "Tipp"
        Range("A2").Select
        Zahl = 0
        Counter = 0
        tb_eingabe.Value = ""
        Exit Sub
    End If
End If

'eingegebene Zahl ist größer
If Eingabe > Zahl Then
    Cells(Counter + 2, 1) = Eingabe
    Cells(Counter + 2, 2) = "geschätzte Zahl zu groß"
    tb_eingabe.Value = ""
    Counter = Counter + 1
End If

'eingegeben Zahl ist kleiner
If Zahl > Eingabe Then
    Cells(Counter + 2, 1) = Eingabe
    Cells(Counter + 2, 2) = "geschätzte Zahl zu klein"
    Counter = Counter + 1
    tb_eingabe.Value = ""
End If

End If

End Sub

als Fehler kommen Die anweisung ist in einem Namespace ungültig wenn ich rauf klicke markiert er

Dim Zahl As Integer Dim Counter As Integer

Private Sub btn_click_Click()

(ganz oben) kann mir wer den code richtig machen?

Antwort
von PWolff, 8

Schau dir noch mal die Anleitung aus dem Internet an - vermutlich hast du übersehen, dass der Code in eine bestimmte Prozedur hineinmuss.

Variablen, Konstante etc. können nur in Klassen/Modulen und in Prozeduren deklariert werden.

Außerhalb von Klassen/Modulen befindet man sich direkt in einem "Namespace" ("Namensraum"), daher diese Formulierung der Fehlermeldung.

Die Namensräume sind der Teil eines voll qualifiziereten "Member"-Namens, der sich nicht auf eine Klasse oder auf das Member selbst bezieht. Namensräume dienen zum Organisieren der Hunderttausende von Methoden, Konstanten etc. im .NET-System.

Wenn du z. B. die Dateinamen in einem Ordner haben willst, rufst du die Funktion

System.IO.Directory.GetFiles(Ordnername)

auf. Hierbei ist "GetFiles" der Membername (hier: Funktionsname), "Directory" der Klassenname und "System.IO" der Namensraum.

(In VB.NET in Visual Studio sieht man normalerweise nicht davon, dass sich aller Code letztlich in einem Namensraum befindet. In C# werden die Namensräume immer mit angegeben. Beides hat seine Vor- und Nachteile.)

Kommentar von SnakeOfficial ,

Okay ich verstehe da nicht viel :D könntest du mir den fehler korrgigieren wie gesagt wenn ich auf die fehlermeldungen klicke sind die oberen 3 zeilen markiert ps  bin nicht der krasse programmierer :D

Kommentar von PWolff ,

Kannst du mal bitte die ersten Zeilen der ganzen Datei nennen?

Einschließlich

"Imports ..." 

(falls vorhanden) und

"... Class ..." 

bzw.

"... Module ..."

?

Keine passende Antwort gefunden?

Fragen Sie die Community