Office: Set ... = Worksheets(...) notwendig?

Helfe beim Thema Set ... = Worksheets(...) notwendig? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Ich lese oft in Codes eine Zuweisung eines Worksheets zu einer Variablen, bevor dann über diese Variable auf das Worksheet zugegriffen wird.... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Wolff68, 6. Januar 2022.

  1. Wolff68
    Wolff68 hat Ahnung

    Set ... = Worksheets(...) notwendig?


    Hallo,

    Ich lese oft in Codes eine Zuweisung eines Worksheets zu einer Variablen, bevor dann über diese Variable auf das Worksheet zugegriffen wird.
    Aber jedes Worksheet hat doch bereits einen Namen, der in den Eigenschaften sogar vernünftig umbenannt werden kann.
    Worin also liegt der Sinn nochmal eine Variable auf das Objekt zu setzen?

    In meinem Beispiel verhalten sich beide Codes identisch:
    Code:
    Option Explicit
    
    Private Sub btMitSet_Click()
    Dim MySheet As Worksheet
     Set MySheet = Worksheets("TabName")
     MsgBox MySheet.Range("A1")
     MySheet.Range("B1") = "Echo Mit"
    End Sub
    
    Private Sub btOhneSet_Click()
     MsgBox wsTab.Range("A1")
     wsTab.Range("B1") = "Echo Ohne"
    End Sub
     
    Wolff68, 6. Januar 2022
    #1
  2. ralf_b hat Ahnung
    Der Codename wird eher selten umbenannt. Zumindest bei den Codes ,die in Foren kursieren. Profis nutzen den Codenamen sicher öfter.
    Die Nutzung von Variablen für Arbeitsblätter ist einerseits, um den Code übersichtlicher und kürzer zu gestalten und Andererseits um den Namen nur einmal im Code schreiben zu müssen, falls sich dieser ändert.
    Wird ein Arbeitsblatt zur Laufzeit erzeugt, kannst du den Codenamen nicht einfach ändern. Du mußt umständlich auf die vbe -componente zugreifen. Beim Blattnamen ist es wesentlich einfacher. Außerdem werden die meisten Leute wohl den Blattnamen nutzen weil der etwas näher liegt um den Code nachzuvollziehen.

    Wie du das schlußendlich für dich machst, ist deine Sache. Irgendwann findest du heraus ob du damit besser fährt oder nicht.

    Für dein Beispiel benötigst du nicht mal den Worksheets-Prefix. Da der Code auf dem Codemodul des Arbeitsblattes läuft
     
    ralf_b, 7. Januar 2022
    #2
  3. Wolff68
    Wolff68 hat Ahnung
    Hallo Ralf,
    Danke für Deine Antwort.
    Dann bin ich also genug Profi, da ich eigentlich immer die Codenamen der Worksheets anstatt der Set-Variante verwende. Set ... = Worksheets(...) notwendig? *;)*
    Wollte nur mal wissen, ob das sonst irgendwo einen Unterscheid macht oder nicht.

    Die Blattnamen können eben auch vom User leicht geändert werden. Und DAS fährt den Code dann sicher an die Wand.

    Das Problem bei neu erstellten Sheets ist leider vorhanden. Vor allem, dass man dazu erst das Trust-Center umstellen muss ist ärgerlich. Zum Glück hatte ich das Problem bisher nur in einem einzigen Projekt. Da hatte ich mir dann aber den Index für spätere Zugriffe gemerkt.
     
    Wolff68, 7. Januar 2022
    #3
Thema:

Set ... = Worksheets(...) notwendig?

Die Seite wird geladen...
  1. Set ... = Worksheets(...) notwendig? - Similar Threads - Set Worksheets notwendig

  2. Access Set Focus

    in Microsoft Access Hilfe
    Access Set Focus: habe ein Formular unter anderen mit den Feldern TopfNr und SubNr , für Feld TopfNr gibt es eine Abfrage (vorhandene TopfNr) die mit Msgbox mit ja oder nein beantwortet wird; jetzt sollte bei...
  3. Laufzeitfehler 438 für Set bei Workbook+Worksheet

    in Microsoft Excel Hilfe
    Laufzeitfehler 438 für Set bei Workbook+Worksheet: Hallo Zusammen, ich versuche grade meinen Code etwas übersichtlicher zu gestalten und habe die genutzten Workboks und Worksheets über Set kurzen Variablen zugewiesen. Dabei bin ich aber auf...
  4. Set slicer filter by Range.Value & slicer.item.name as variable & walk trough sheets

    in Microsoft Excel Hilfe
    Set slicer filter by Range.Value & slicer.item.name as variable & walk trough sheets: Hallo, schon mal vielen Dank im Voraus für eure Ideen: Es geht um folgenden Sachverhalt: Ein Excel-File mit mehreren Tabs. In jedem Tab ist eine Pivot. Die Pivots haben nicht die gleiche...
  5. VBA Excel Schlüsselwort 'set' Erklärung

    in Microsoft Excel Hilfe
    VBA Excel Schlüsselwort 'set' Erklärung: Hallo liebe Gemeinde Eine Prozedur beginnt mit: Set Bereich = Sheets("Tabelle14") Wofür steht dieses "Set" ? Wozu braucht man das? Die VBA Hilfe ist wie immer nicht aufschlussreich. Gruß und...
  6. Update tbl.... Set .... Where...

    in Microsoft Access Hilfe
    Update tbl.... Set .... Where...: Hallo zusammen, habe ein banales Problem, was für das Forum bestimmt/hoffentlich ein Leichtes ist! Der Kontext ist folgender: In einem Hauptformular wähle ich einen Prüfer (z.B. für Englisch),...
  7. Stil-Sets nicht vorhanden

    in Microsoft Word Hilfe
    Stil-Sets nicht vorhanden: Liebe Leute, ich hoffe, Ihr könnt mir helfen. Ich habe 2 Probleme, mit denen ich nicht weiterkomme. 1) In Word 2013 kann man ja bei Opentype Schriftarten unter anderem Stil-Sets verwenden....
  8. Set Anweisung mit If Abfrage ignorieren VBA

    in Microsoft Excel Hilfe
    Set Anweisung mit If Abfrage ignorieren VBA: Hallo, ich habe folgenden Code, in dem ich eine Zeile finden will. Das Problem ist, wenn die gesuchte Zeile nicht vorhanden ist, soll die suchanweisung ignoriert werden. Also keine Fehlermeldung...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden