Referenzierung mit CodeName

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: xl9
nach unten

Betrifft: Referenzierung mit CodeName
von: Charlie
Geschrieben am: 27.04.2002 - 11:19:16

Schönen guten Morgen!

Ich möchte in einer geöffneten Arbeitsmappe mit der Find-Methode prüfen, ob ein Wert vorhanden ist und wenn ja, andere Daten aus der Fundzeile auslesen, ohne die Arbeitsmappe aktivieren zu müssen.

Damit meine Codes auch dann funktionieren, wenn der Anwender die Blattreihenfolge ändert oder die Blätter umbenennt (was ich nicht verhindern kann bzw. will), spreche ich die Tabellen grundsätzlich mit den CodeNamen an.

Jetzt meine Frage:
Kann ich die CodeNamen bei Referenzierung auf nicht aktive Mappen nicht verwenden oder mache ich da etwas falsch?


With Workbooks(strKdKartei)
    With .Sheets(1)
        lngRowEnd = .Cells.Find("*", .Range("A1"), , , _
            xlByRows, xlPrevious).Row
        Set varKdNr = .Range("A2:A" & lngRowEnd) _
            .Find(lngKdNr, LookIn:=xlValues, LookAt:=xlWhole)
        If varKdNr Is Nothing Then
            MsgBox "Kundennummer nicht gefunden.", vbExclamation
            Set varKdNr = Nothing
            Exit Sub
        Else
        '.....
        End If
    End With
End With

funktioniert, verwende ich aber statt .Sheets(1) den CodeNamen (Tabelle1) bezieht sich Excel auf die Tabelle1 in der aktiven Mappe, verwende ich .Tabelle1 (mit Punkt davor) wird ein Laufzeitfehler 438 (Objekt unterstützt diese Eigenschaft oder Methode nicht).

Habt Ihr eine Idee?
Danke im voraus,
Charlie

nach oben   nach unten

Re: Referenzierung mit CodeName
von: Michael Scheffler
Geschrieben am: 27.04.2002 - 11:29:02

Hallo, ich galube nicht, dass es mit (Tabelle1) funktioniert. Wenn Du mit dem Namen operierst, musst Du ihn als String übergeben ("Tabelle1"). Ansonsten sollte es klappen. Gruß Micha

nach oben   nach unten

Re: Referenzierung mit CodeName
von: Charlie
Geschrieben am: 27.04.2002 - 11:44:08

Hallo, Micha! Danke für Deine Antwort, aber ich habe bei meiner Problembeschreibung scheinbar nicht alles richtig rübergebracht. Ich verwende nicht (Tabelle1), sondern meinte den CodeNamen Tabelle1, den ich nur im Text in Klammer gesetzt habe.
With Workbooks(strKdKartei)     With Tabelle1         '....     End With End With     'funktioniert ebenso wenig wie With Workbooks(strKdKartei)     With .Tabelle1     '....     End With End With
Ich will auch nicht mit (Blatt-)Namen, die ich als String übergebe, arbeiten. Würde ich "Tabelle1" als String übergeben, müsste die Tabelle in der nicht aktiven Mappe mit "Tabelle1" benannt sein, damit es funktioniert. Benennt der Anwender die Tabelle aber irgendwie um, funktioniert es nicht mehr. Die Referenzierung über Sheet(Index) bringt mich auch nicht wirklich weiter, weil bei geänderter Blattreihenfolge nicht das richtige Sheet angesprochen wird. Danke nochmals, Charlie

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zufallszahlen auflisten"