Ich bin neu hier mit etwas, das mich wochenlang verblüfft hat.
Ich habe ein Makro, das Excel-Bereiche von einem Blatt auf eine vorbereitete PowerPoint-Folie kopiert. Dies geschieht mit einem Array wie dem folgenden:
SlideArr = Array(1, 2, 3)
RangeArr = Array(Output.Range("A1:B1"), Output.Range("A2:B2"), _
Output.Range("A3:B3"))
For x = LBound(SlideArr) To UBound(SlideArr)
RangeArr(x).Copy
Set shp = MyPresentation.Slides(SlideArr(x)).Shapes.PasteSpecial(DataType:=2)
Kopieren Sie nun 3 Sätze von Bereichen in 3 verschiedene Folien. Meine Frage ist, ob es möglich ist, ein Makro zu codieren, das die 2. Folie (Array 2) überspringt, sodass es nur auf den Folien 1 und 3 eingefügt wird.
Continue for
oder überprüfen Sie, ob Sie sich auf Folie eins oder drei befinden, und führen Sie Ihre Logik aus. Um eine bedingte Prüfung durchzuführen, verwenden SieIf
.if
in diesem Fall eine verwenden? Kann ich einfach etwas tun wie:If Array(2) Continue for Array(3) End If
Nicht sehr vertraut mit Arrays zu arbeiten, da es mein erstes Mal ist. Es war ein Glücksfall im Vergleich zu meiner vorherigen Methode, für jeden Bereich einen Code zum Kopieren und Einfügen zu erstellen.Antworten:
Wenn Sie nur 3 Artikel haben, haben Sie einige Optionen
Wie im Kommentar erwähnt (nicht die effizienteste Option):
Das nächste ist nützlicher für mehr Gegenstände, aber es kann auch hier funktionieren
Oder verwenden Sie einfach keine Schleife:
Hoffe das hilft
quelle