Hallo,
bitte helfen Sie mir, Excel-VBA-Code zu schreiben:
Ich verwende zur Erläuterung ein Beispiel:
1. Betrachten Sie eine Excel-Arbeitsmappe mit mehreren Blättern. Im Blatt „VBASheet“ haben wir Daten wie diese:
VBASheet:
| A | B | C | D | E | F | G |
|---------|-----------|---------------|-----------|-----------|--------|----------|
| 1 | KW 15 | A1 SB-27 | A1 | | | |
| 2 | KW15 | A3 SB-38 | A3 SB | | | |
| 3 | KW15 | A3 SE-38 | A3 Lim | | | |
| | | | | | | |
Gehen Sie im Blatt „VBASheet“ durch Spalte D. Wenn in Spalte D ein Blattname gefunden wird, rufen wir Werte aus den Spalten B und C in dieser Zeile ab. (Wenn das Blatt „A1“ in der Arbeitsmappe gefunden wird, rufen Sie Werte aus Spalte B und C in dieser Zeile ab, hier Wert in Zelle B = „KW 15“ und Wert in Zelle C = „A1 SB-27“).
Bevor Sie VBA-Code ausführen:
Sheet "A1":
| A | B | C | D | E | F I
|---------|------------|----------|---------|-------|
| Data1 | A1 SB-27 | KW15| KW16 | Jan | KW17 |
| Data4 | Value2 | Sheet1| Data5 | Dat6 | 11 I
| Data7 | Value3 | Sheet2| Data8 | Dat9 | 12 I
| Data1 | Value1 | Sheet3| Data2 | Dat3 | 13 I
| Data4 | Value2 | Sheet4| Da5 | Daa6 | 14 I
| Data7 | Value3 | Sheet1| Data8 | Dat9 | 15 I
Als nächstes suchen wir nach dem Wert in Zelle C im entsprechenden Blatt (so suchen wir nach "A1 SB-27" in Blatt "A1"). Wenn "A1 SB-27" in Zelle B2 in Blatt "A1" gefunden wird, suchen Sie in derselben Zeile nach "KW15", der in Spalte B in "vBasheet" -Blatt den Zellwert war. Wenn beide Bedingungen erfüllt sind, dann durch (1,0) -> in diesem Beispiel Zelle D2 verankert und prüfen, ob diese Zelle "KW" als Wert darin enthält. Wenn wir hier durch (1,0) auf "KW15" in "A1" -Stheet als Zellwert ausgleichen, ist "KW16", das "KW" enthält. dann durch (1,0) an "KW16" (Zelle D2) und Kopienwert dieser Zelle D2 ("Sheet1") in der Zelle (3,0) ausgleichen. Kopieren Sie also "Sheet1" und ersetzen Sie "Sheet4" durch "Sheet1", setzen Sie diese Schleife fort, indem Sie sich (1,0) in Zelle D2 befinden, nun die Zelle E2 ("Jan"), und überprüfen Sie, ob die Zelle E2 "KW" enthält, wenn ja, dann unten oben oben und falls nicht dann erneut (1,0) in Zelle E2 ...
Nach dem Ausführen von VBA -Code:
Sheet "A1":
| A | B | C | D | E | F I
|-------|-------|-------|-------|-------|
| Data1 | A1 SB-27 | KW15 | KW16 I Jan | KW17 |
| Data4 | Value2 | Sheet1 | Data5 | Dat6 | 11 I
| Data7 | Value3 | Sheet2 | Data8 | Dat9 | 12 I
| Data1 | Value1 | Sheet3 | Data2 | Dat3 | 13 I
| Data4 | Value2 | Sheet4 | Data5 | Daa6 | 11 I
| Data7 | Value3 | Sheet1 | Data8 | Dat9 | 15 I
In meinem „VBASheet“-Blatt sind in Spalte D mehr als 50 Blätter aufgeführt, da ich dieses 50-Arbeitsblatt auch in meiner Arbeitsmappe habe und diese ähnliche Logik für alle Blätter funktionieren muss
|