ActiveSheet wechselt nach SpecialPaste
08.06.2019 21:59:50
Vanessa
ich bin eine recht blutige VBA-Anfängerin (Typ "learning by doing") und gerade dabei mir einen Code zu basteln. Ich habe nun ein Problem mit dem Bezug aufs ActiveSheet, nachdem ich ein Copy und SpecialPaste durchgeführt habe.
Ausführlicher:
Mein Code liest eine gewisse, sich ändernde Anzahl von Textzeilen in einen Array "textSpeicher", die in der folgenden Schleife wieder ausgelesen werden
i = 0
For y = 25 To UBound(textSpeicher) + 25
Range("A" & y) = textSpeicher(i)
Range(("A" & y), ("E" & y)).MergeCells = True
Rows(y + 1).Insert (xlDown)
Range("F" & y).Copy
Debug.Print ActiveSheet.Name 'ergibt im 1. Durchlauf "Blatt2", danach "Blatt1"
Range("F" & y + 1).PasteSpecial xlPasteFormulas
Debug.Print ActiveSheet.Name 'ergibt im 1. Durchlauf "Blatt1"
If i < UBound(textSpeicher) Then
i = i + 1
End If
Next y
Der Text stammt ursprünglich aus dem Arbeitsblatt, Blatt1, und soll im (eigentlichen) Active Sheet, Blatt2, eingefügt werden. Nach dem PasteSpecial wechselt das ActiveSheet gleich im ersten Durchlauf der Schleife plötzlich zu Blatt1. Sobald der Code komplett durchgelaufen ist, ist dann dieses auch plötzlich das "geöffnete" Blatt, obwohl zuvor beim Codeaufruf noch Blatt2 zuvorderst lag.
Ich frage mich nun schon seit einigen Stunden und erfolgloser Online-Recherche: Warum?
Es hat auch nicht geholfen, statt des Range.PasteSpecial xlPasteFormulas ein xlPasteAll oder ein Worksheet.Paste zu verwenden.
Mich interessiert auch, wieso der Code trotzdem alles auf Blatt2 "abarbeitet" wenn schon nach dem ersten Schleifendurchlauf das ActiveSheet mysteriöserweise Blatt1 geworden ist. Dann müssten sich doch nachfolgend alle Ranges (und die Rows) auf Blatt1 beziehen? Oder habe ich da was falsch verstanden?
Werdet ihr daraus schlau?
Ärgerlich ist dieses Umswitchen, weil ich später ein ActiveSheet.Protect im Code habe und dann immer das falsche Blatt geschützt wird. Das könnte ich natürlich klar ausschreiben (Worksheets("Blatt1").Protect). Aber mich treiben Ehrgeiz und Neugier. Vielleicht ist es ja nur eine Kleinigkeit, die ich übersehen habe?
Vielen Dank schon im Voraus für Hinweise und eventuelle Aufklärung
Beste Grüße
Vanessa