vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Automatisierungsfehler bringt mich zum Verzweifeln 
Autor: badlooser
Datum: 07.09.04 19:49

Hallo,

ich bin bald am Verzweifeln, Keine Ahnung was da nicht stimmt:

        If Not cstrLinkedBox = "" Then
            'abhängige Box ermitteln
            For Each objComboBox In gcolComboBoxes
                'Wenn das ComboBox-Objekt noch existiert
                If objComboBox.ObjectDeleted = False Then
                    If objComboBox.Name = cstrLinkedBox And _
                        'Hier passiert der Fehler, Er scheint das 
                        ' Workbook-Objekt nicht zu finden, obwohl es da ist
                        objComboBox.Workbook.Name = cwrbWorkbook.Name And _
                        objComboBox.Worksheet.Name = cwrsWorksheet.Name Then
                        'Subset der abhängigen Box ändern
                        objComboBox.Subset = cstrSelectedItem
                        'abhängige Box erneut abfragen
                        objComboBox.GetItems
                    End If
                End If
            Next objComboBox
        End If
Zur Erklärung:

Es handelt sich um eine Klasse, die neben einer ComboBox in weiteren Variablen
das Workbook- und das Worksheet-Objekt speichert, auf dem die ComboBox platziert ist. Der Code-Fragment hier ist aus dem Change-Ereignis der ComboBox.

gcolComboboxes ist eine Auflistung, die alle ComboBoxen, die in allen Arbeitsmappen existieren, enthält. Die ComboBoxen sind teilweise voneinander abhängig. wenn nun das ausgewählte Element der aktuellen ComboBox geändert wird, wird die abhängige ComboBox gesucht um deren Inhalt erneut abzufragen. Dabei darf der Inhalt nur dann erneut abgefragt werden, wenn die abhängige ComboBox auf demselben Arbeitsblatt liegt wie die aktuelle ComboBox. Deswegen wird neben dem Namen der ComboBox auch die Namen von Workbook und Worksheet verglichen. Den Namen der Combobox kann er problemlos vergleichen. Beim Vergleichen der Workbook und Worksheet-Namen bringt er die Automatisierungsfehler.

Das Problem ist: Er läuft die Schleife genau einmal durch und erst ab dem zweiten Mal bringt er den Fehler.

Soweit ich weiss, treten Automatisierungsfehler auf wenn implizite Objekte benutzt werden (z.B. ActiveCell anstelle von Application.ActiveCell). Excel erzeugt dann ein verborgenes Objekt "Application" um auf die Eigenschaft "ActiveCell" zuzugreifen. Dieses verborgene Objekt wird dann nicht freigegeben und beim zweiten zugreifen darauf tritt ein Automatisierungsfehler auf.

Nur ich sehe hier nicht, wo Excel oder meine Klasse ein verborgenes Objekt erzeugen müssen. Ich habe auch anstatt 'cwrbWorkbook.Name' es mit 'Me.Workbook.Name' versucht. dasselbe Problem...

Ich bin mit meinem Latein am Ende.
Weiss Jemand von euch Rat?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Automatisierungsfehler bringt mich zum Verzweifeln880badlooser07.09.04 19:49
Re: Automatisierungsfehler bringt mich zum Verzweifeln444Mr. Fox08.09.04 09:59

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel