Ich habe eine ziemlich komplexe Aufgabe heute und könnte einige Hinweise verwenden.Excel VBA: Identifizieren und exportieren Sie eine Gruppe von Werten für die Änderung basierend auf einzelnen Element in der Gruppe
Lassen Sie mich die Szene:
Ich habe eine Excel-Arbeitsmappe mit zwei Blättern.
Das Hauptarbeitsblatt enthält viele Daten mit eindeutigen IDs und einigen Attributen. Diese IDs werden von einer Gruppenvariablen in Gruppen mit ungleicher Größe gruppiert. Optisch sieht es so etwas wie diese:
ID - Group - Attribute1 - Attribute2 - Attribute3 - ...
11 - 1001 - 0 - 1 - integer - ...
12 - 1001 - 1 - 1 - integer - ...
11 - 1001 - 1 - 0 - integer - ...
44 - 1002 - 0 - 1 - integer - ...
15 - 1002 - 1 - 1 - integer - ...
21 - 1002 - 0 - 1 - integer - ...
97 - 1002 - 1 - 0 - integer - ...
32 - 1002 - 1 - 1 - integer - ...
33 - 1003 - 0 - 1 - integer - ...
Das zweite Blatt eine Eingabemaske die Gruppen in der Großschot modifizieren werden soll. Die Idee ist, dass Sie eine eindeutige ID haben, die Sie eingeben, und dann in der Lage sind, die Attribute der gesamten Gruppe zu manipulieren, zu der diese ID gehört. es so etwas wie folgt aussehen könnte:
Enter ID here: ##
**Search!**<-Button
------------------
This ID belongs to Group ####!
All entries for group ####:
ID - Attribute1 - Attribute2 - Attribute3 - ...
## - 0 - 1 - integer - ...
## - 0 - 1 - integer - ...
## - 0 - 1 - integer - ...
## - 0 - 1 - integer - ...
**Update all Changes!** <- Button
Nach den entsprechenden Änderungen vornehmen sollte die Maske, die neuen Werte in der Großschot an den entsprechenden Stellen aktualisieren.
Was ich habe, so weit:
Ich habe einen Code, der für eine ID zu einer Zeit, dieses ganze Verfahren der Fall ist. Es sucht nach der gegebenen ID im Hauptblatt und füllt die Maske mit den entsprechenden Werten, die in der Maske geändert werden können und diese Änderungen können am Ende wieder auf dem Hauptblatt gespeichert werden.
Ich tat dies mit Set foundCell = searchRange.Find(what:=mysearch, after:=searchRange.Cells(searchRange.Cells.Count))
und die verwendete foundCell.Offset(0, -8).Value
, um die Maske mit relevanten Attributen zu füllen. Und umgekehrt, um die Änderungen zu speichern.
Was ich suche:
ich für einen Befehl/Befehle bin auf der Suche, die mir erlauben auf einmal die Maske mit der gesamten Gruppe von IDs zu füllen, und diese gesamte Gruppe speichern zurück, wo es herkam. Soweit mir bekannt ist, ist dies mit dem Offset-Befehl nicht machbar. Allerdings habe ich keine Ahnung, welcher Ansatz es ersetzen könnte.
Ich freue mich auf das Lesen und Experimentieren mit allen netten Ideen.
Danke so sehr;)
Wenn ich Sie richtig verstehe, könnten Sie vielleicht die ID finden und die Gruppennummer zurückgeben. Verwenden Sie dann das, um die Spalte Gruppe zu filtern und Änderungen direkt auf dem Hauptblatt vorzunehmen. – Brian
Danke!Ich werde dies als eine Backup-Lösung berücksichtigen; D. –