Fehler in der Excel-ActiveX-Kombinationsfelder?
Habe ich bemerkt, dass ich alle Arten von nervigen Fehler, wenn:
- Ich habe ActiveX comboboxes auf einem Arbeitsblatt (nicht in einer excel-Formular)
- Die comboboxes haben Ereignis-code verknüpft sind (z.B. onchange-Ereignisse)
- Ich verwenden Ihre listfillrange oder linkedcell-Eigenschaften (clearing-diese Eigenschaften scheint zu lindern und eine Menge Probleme)
- (Nicht sicher, wenn dieses angeschlossen ist), aber es gibt Daten, die Validierung auf die gezielte linkedcell.
Ich programmiere eine ziemlich komplexe excel-Anwendung, die eine Tonne von event-handling und verwendet eine Menge von Kontrollen. Über die Monate habe ich versucht, das Angebot mit einer Vielzahl von bugs, die den Umgang mit diesen combo-Boxen. Ich kann mich nicht erinnern, alle details der jede Instanz, aber diese bugs eher um das zeigen des listfillrange und linkedcell-Eigenschaften auf benannte Bereiche, und haben oft zu tun mit der combo-box-Ereignisse auslösen zu unangebrachten Zeiten (wie bei der Anwendung.enableevents = false). Diese Probleme schien zu wachsen, größer zu werden, in Excel 2007, so dass ich aufgeben musste, auf diese combo-Boxen ganz (ich verwende jetzt combo-Boxen enthalten in benutzerformulare, anstatt direkt auf dem Blatt).
Hat jemand sonst gesehen ähnliche Probleme? Wenn ja, war es eine anmutige Lösung? Ich habe mir, um mit Google und bisher noch nicht gesichtet jemand mit ähnlichen Problemen.
Einige der Symptome, die ich am Ende zu sehen sind:
- Excel abstürzt, wenn ich starte (geht combobox_onchange, listfillrange->benannten Bereich auf ein anderes Blatt, und workbook_open-Interaktionen). (Hinweis, ich hatte auch einige Daten, die Validierung auf der Sie die verknüpften Zellen im Falle dass ein user bearbeitet Sie direkt.)
- Excel-rendering-bugs (in der Regel, wenn sich die Auswahlbox verändert, einige Zellen aus einem anderen Blatt Holen Sie nach dem Zufallsprinzip gezogen, über der Oberseite von der aktuellen Platte) Manchmal ist es beinhaltet die Bildschirm blinkt ganz anderen Blatt für einen moment.
- Excel verlieren Ihren Geist (oder besser gesagt, der call-stack) (bezogen auf den ersten Punkt). Manchmal, wenn eine Funktion ändert eine Eigenschaft von comboboxes, die combobox onchange-Ereignis feuert, aber nie wieder die Kontrolle an die Funktion, die die Veränderung in den ersten Platz. Die combobox_onchange Ereignisse werden auch ausgelöst, wenn die Anwendung.enableevents = false.
- Events feuern, wenn Sie nicht sollten (ich postete noch eine Frage auf stack overflow im Zusammenhang mit diesem).
In diesem Punkt, ich bin ziemlich überzeugt, dass ActiveX-comboboxes sind das verkörperte böse, und nicht der Mühe Wert. Ich habe eingeschaltet, um einschließlich dieser comboboxes innerhalb eines userform-Modul statt. Ich würde eher Unannehmlichkeiten Benutzer mit popup-Formulare als zufällige visuelle Artefakte und Absturz (mit Datenverlust).
Mitch: ich habe vorsichtig trat durch die Ausführung von code. Dies ist definitiv Excel-Probleme. Als ich sagte, dass Excel fällt die Funktion stack kann ich mir eigentlich nicht erklären, es auf andere Weise. Und Excel sollte nicht Abstürzen, egal wie schlecht jemand die Makros nicht richtig.
Mitch, wenn Sie wollen, um zu sehen, ein Beispiel für einen Fehler, den ich machte Dokument ist wesentlich genauer und die Schuld auf Excel finden Sie unter stackoverflow.com/questions/1263394/... - ich habe noch nicht gegangen in so viel detail hier, weil ich vermute, es ist ein Allgemeines problem mit dem activex-comboboxes.
InformationsquelleAutor Kimball Robinson | 2010-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe nicht eine definitive Antwort für dich, aber ich kann Ihnen sagen, dass ich nicht mehr mit ListFillRange und LinkedCell für ActiveX-Steuerelemente über 10 Jahren. Ich erinnere mich nicht, was insbesondere Probleme, die ich hatte. Ich erinnere mich nur zu dem Schluß kommen, dass alles, was wenig Zeit, Sie hat mich gerettet, ist nicht Wert, das Gehirn Schmerz zu versuchen, um die Spur des bugs. So jetzt habe ich Auffüllen der Steuerelemente durch den code und deal mit Ausgang in den Ereignissen.
InformationsquelleAutor Dick Kusleika
Meine active-x combo-box funktioniert bei meinem Dell ist angedockt, aber die Größe auf eine größere Schrift jedes mal, wenn darauf geklickt wird, wenn das Dell nicht in der Basisstation befindet - sehr seltsam. Ich fügte hinzu, resizing-code, der funktioniert, wenn nicht angedockt, sondern beides .Höhe und .scaleheight scheitern, wenn Sie angedockt und, wenn er ausgelöst wird programmgesteuert (auch fremden).
Ich dann noch meine eigenen enableevents-wie Schalter, so dass Sie die Größe nur dann Auftritt, wenn ein Benutzer wählt in einer combobox einen Wert, nicht, wenn alles betroffen ist, während ein makro ausgeführt wird.
Schließlich, das scheint zu funktionieren, egal ob kupiert oder unkupiert, ob ausgelöst durch den Benutzer oder während des Eingriffs. Wir werden sehen, ob es hält...
InformationsquelleAutor mike
Ich habe eine teilantwort für die Dell-Nutzer, und für eine Formatierung problem
Die Formatierung und Anzeige-problem ist ein weiteres bekannt-aber-nicht dokumentierte Problem in Excel.
Viele flat-panel-Monitore (einschließlich laptop-displays) sind nicht in der Lage zu Rendern Schriftarten korrekt in die textbox-Steuerelemente auf einer Excel-Tabelle: hast du eine milde Variante des Problems.
Unsere Firma hat vor kurzem die Aktualisierung auf neue (und viel größere!) Monitore, und ich kann endlich verwenden Sie Textfelder, labels und Comboboxen in Tabellen. Unsere alten Samsung Bildschirme angezeigt, text-Steuerelemente korrekt, aber jede Anleitung oder VBA-driven updates führte zu einer unleserlichen Wirrwarr von sich überlappenden Zeichen.
Listboxen nicht das problem: es ist die 'textbox' Teil deines combo-box hat das Problem. Versuchen Sie, die Manipulation einer listbox in VBA-Ereignisprozeduren: es ist ein Schlamassel, aber es funktioniert.
In-Cell-dropdowns aus Daten-Validierung-Listen nicht das problem. Wenn Sie eine Gültigkeitsprüfung-Liste für eine Zelle, dann legen Sie die Validierung von Daten Fehlermeldungen für leere Zeichenfolgen, können Sie free-form text in der Zelle; die drop-down-Liste ist eine beratende, nicht eine obligatorische limit-Liste.
Das problem ist manchmal abgefedert (aber nie vollständig fixiert ist) durch das Terminal oder System-Schriftarten, die in Ihrer Active-X-Steuerelement.
Das problem ist manchmal abgefedert (aber nie ganz behoben) mithilfe eines VBA-Ereignis zu verschieben oder ändern Sie die Größe Ihres Active-X control von 0,75 mm.
Überprüfen, ob Ihre laptop-Hersteller veröffentlicht ein upgrade für die display-Treiber.
...Und das ist alles, was ich weiß über die font-rendering-problem. Wenn Mike (mit seinem Dell-laptop) ist zu Lesen: viel Glück mit diesen workarounds - zu den besten meines Wissens, gibt es keine echte "reparieren".
Den Stabilitäts-problem war eine große Kopfschmerzen für mich, bis Excel 2003 kam heraus: mit jedem Active-X-Steuerelement auf dem Blatt war eine Quelle der Instabilität. Die Jury ist noch heraus auf Listbox-Steuerelementen eingebettet in ein Blatt, auch in Excel 2003: ich habe noch vermeiden, mit Ihnen.
InformationsquelleAutor Nigel Heffernan
Also ich Stand vor den gleichen Fragen. Ich hatte eine Datei mit drop-down-Listen, die ich hatte, überlagerten die combobox zu kämpfen, das Problem der unlesbarkeit beim Zoomen zu viel. Das war, was mein code sah wie ANFANGS:
War ich vor allen Arten von Fragen, aber in Erster Linie erwähnt in diesem thread, die LinkedCell-Problem war die größte. Meine Auswahl aus der drop-down-Menü gehen würde, wo auch immer auf der Platte hatte ich geklickt, letzten, statt die Zelle, die ich gewählt hatte, die drop-down-Feld aus, und in den Prozess, stören auch der code, wo auch immer die Auswahl gehen würde. Ich habe eine einfache EINE ZEILE code, um sicherzustellen, dass mein Programm in ActiveX läuft nur, wenn Ihr ein drop-down-Menü. Ich habe diese vor der LinkedCell-Befehl ausgeführt wurde:
Also mein code sieht jetzt wie folgt aus:
Unglaublich, das hat funktioniert. Und jetzt ist mein excel-Blatt ist nicht schlecht benehmen mehr. Hoffe, das hilft.
InformationsquelleAutor Sampat Kedarisetty
Aus diesem Grund habe ich die Verwendung von Zellen mit Gültigkeitsprüfung aufgelistet werden, wenn putting Comboboxen auf einem Arbeitsblatt.
True auf mehrere Spalten. Wie für text-Größe, kann es ziemlich klein ist, zumindest aber die skaliert werden, um die zoom-Größe. Ich habe Probleme mit Active X zu Zeiten, da die dropdown-text nicht Maßstab mit dem zoom und Benutzer haben sich beschwert.
InformationsquelleAutor guitarthrower