aktualisiert werden ich hoffe, dass Sie mich mit meinem kleinen Problem hier helfen kann ..Daten werden in einer Combobox gespeichert statt
Meine Datei besteht drei Arbeitsblätter. 1. Daten 2. Bericht 3. Arbeitsblatt helfen einige Berechnungen
zu machen, wenn ich die Datei öffnen, ich auf eine Schaltfläche klicken, um eine Berechnung zu implementieren, die einige Anfragen beginnt. Diese Anforderung kopiert zuerst die Daten von Arbeitsblatt 1 (Daten) in Arbeitsblatt 3 (Arbeitsblatt). Nach weiteren Anforderungen, die alle in Benutzerformularen ausgeführt wurden, werden die Daten in Arbeitsblatt 3 nach den angeforderten Daten gefiltert. Das Benutzerformular erhält seine Daten aus Arbeitsblatt 3 und wird in einer Combobox über das Scripting Dictionary angezeigt.
Hier ist das Problem:
Meine Daten auf drei Tabellen enthalten ist. Wenn ich den Knopf auf Arbeitsblatt 2 drücke, erledigen die Anfragen ihre Arbeit zum ersten Mal. Wenn ich es noch einmal machen möchte (Klicken Sie erneut auf die Schaltfläche, um Kopieren, Filtern und Berechnen zu implementieren), wird der Filter falsch eingestellt und die Berechnung wird ebenfalls ausgeführt. Wenn jedoch Arbeitsblatt 3 geöffnet wird (die aktuelle Ansicht befindet sich auf Arbeitsblatt 3, nicht Arbeitsblatt 2, wo die Schaltfläche ist) und ich die Anforderungen und Berechnungen manuell im Editorfenster starte, sind Filter und Berechnung immer korrekt.
Ich denke, der Fehler ist, wenn die Combobox generiert das Wörterbuch bzw. erhält seine Daten und wendet einen Filter an. Der Filter ist immer derjenige, der bei den ersten Anfragen gesetzt wurde. Bei weiteren Anfragen ändert sich der Filter nicht, es ist immer noch der Filter von der ersten Anfrage. Vielleicht sollte es nach den Anfragen und Berechnungen eine Art Reset geben?
habe ich den folgenden Code für die Userform/Combobox/scritping Wörterbuch:
Sub UserForm_Initialize()
'Taking the data from the helping working sheet
Dim objDic As Object
Dim lngZ As Long
Dim i As Integer
Set objDic = CreateObject("Scripting.Dictionary")
With Sheets("helpsheet")
For i = 12 To Sheets("helpsheet").Cells(.Rows.Count, 3).End(xlUp).Row
If Sheets("helpsheet").Rows(i).Hidden = False Then
ComboBox2.AddItem .Cells(i, 3)
objDic(.Cells(i, 3).Value) = 0
End If
Next
End With
Me.ComboBox2.List = objDic.keys
With Me.ComboBox2
.AddItem "all areas"
End With
End Sub
ich mich wirklich jemand hoffen helfen kann, da ich nicht gehen kann :(
Dank
Rafa
mit 'END' wird dringend abgeraten! Versuchen Sie stattdessen meine Lösung – user3598756