Microsoft Excel

Herbers Excel/VBA-Archiv

Sheets(...).Select mit Variabler


Betrifft: Sheets(...).Select mit Variabler
von: stormlamp
Geschrieben am: 29.11.2018 13:54:22

Hallo,

wie kann ich im Sheets(....).Select eine Variable einsetzen?

Beispiel:

Basiswert = Worksheets("Tabelle1").Cells(3, 1).Value
Sheets(Basiswert).Select
Das funktioniert nicht.
Kann mir bitte jemand bei der richtigen Schreibweise helfen.

Viele Grüße
Hans

  

Betrifft: AW: Sheets(...).Select mit Variabler
von: ede
Geschrieben am: 29.11.2018 14:14:07

Hallo,
sollte eigentlich funktionieren, vermute mal, das Sheet existiert nicht. Prüf mal, bevor due select machst.

Sub test()
basiswert = Worksheets("Tabelle1").Cells(1, 1).Value
  For i = 1 To Sheets.Count
       If Sheets(i).Name = basiswert Then
         Sheets(i).Select
         Exit Sub
       End If
    Next i
MsgBox basiswert & " nicht da"
End Sub

Gruss


  

Betrifft: AW: Sheets(...).Select mit Variabler
von: stormlamp
Geschrieben am: 29.11.2018 14:21:32

Hallo,

vielen Dank für die Hilfestellung. Das Problem lag woanders.
Die Variable "Basiswert" wird an anderer Stelle noch als Typ variant benutzt. Dann geht es nicht.

So funktioniert es:

Dim Basiswert As Variant, variable As String
variable = Basiswert
Sheets(variable).Select


Nochmals Danke
Gruß
Hans


  

Betrifft: AW: Sheets(...).Select mit Variabler
von: Daniel
Geschrieben am: 29.11.2018 14:18:05

Hi
"funktioniert nicht" hat als Fehlerbeschreibung ungefähr die gleiche Qualität wie die Hilfestellung "wenns nicht funktioniert, machs anders"

du könntest uns schon mitteilen, wie sich das "funktioniert nicht" bemerkbar macht, dh gibt es eine Fehlermeldung, wenn ja, welche?
Wenn nein: was passiert, wird das falsche Blatt selektiert?

die Schreibweise des gezeigten Codes ist schon richtig.
es kommt halt auch darauf an, was in der Zelle steht, wie das Blatt tatsächlich heißt, ob du es über den Blattnamen oder die Indexnummer ansprechen willst und wie die Variable Basiswert deklariert ist.
Hier ist es beispielsweise so, dass wenn die Variable Basiswert einen zahlentyp hat (z.B. LONG) VBA versuchen wird, das Blatt mit dieser Indexnummer anzusprechen (das ist im Prinzip die Positionsnummer der Tabellenblattreiter).
Hat Basiswert den Typ String, so wird VBA versuchen, das Blatt mit diesem Namen anzusprechen.
Dieser Fakt kann dann zu Verwirrung führen, wenn du deine Blätter mit Ziffern benannt hast (z.B. "1234") und das Blatt mit dem Namen "1234" versuchst mit der Zahl 1234 anzusprechen, welches dann aber das eintausenzweihundertvierunddreißigste Blatt wäre.

Gruß Daniel


  

Betrifft: AW: Sheets(...).Select mit Variabler
von: stormlamp
Geschrieben am: 29.11.2018 14:24:33

Daniel, danke für die Zusatzerläuterungen
Gruß
Hans