Ich habe einige prehistorical Code, den ich überprüfen muss, ob es noch mit Office 2016 funktioniert. Mit Office 2013 funktioniert es wie ein Charme, aber jetzt mit der neue Version bekomme ich einen Fehler. Das ist, was ich versuche:VBA löschen Blatt löst Laufzeitfehler 9, aber löscht immer noch Blatt
In Arbeitsmappe A Ich habe ein Arbeitsblatt WS-A, das ich in ein neues Arbeitsmappe B kopieren möchte. Vorher erstelle ich eine Kopie von WS-A (genannt WA- A-Kopie) in Arbeitsmappe A und nehmen Sie einige Änderungen vor. Danach kopiere ich WS-A-Copy in ein neues Workbook B (WS-B). Letztendlich möchte ich WS-A-Copy aus der Original-Arbeitsmappe A entfernen, aber wenn ich versuche, dieses Blatt zu löschen, erhalte ich einen Laufzeitfehler 9 (Index außerhalb des Bereichs).
WorkbookA = ActiveWorkbook.Name
WS-A-Copy = ActiveSheet.Name
Range("A1").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Copy
'go to WS-A-Copy in workbook B and add a copy of the values and formats
WS-B = ActiveSheet.Name
Sheets(WS-B).Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= False, Transpose:=False
Range("A1").Select
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= False, Transpose:=False
Range("A1").Select
'Go back to Workbook A and delete WS-A-Copy
Windows(WorkbookA).Activate
If SheetExists(WS-A-Copy) Then
Sheets(WS-A-Copy).Delete <-- Runtime Error 9
End If
Ich überprüfe schon, wenn ich den richtigen Arbeitsmappe A bin mit (Debug-Modus - „activeworkbook.Name“ Typ in den Direkt-Fenstern rechts, bevor der Fehler auftritt). Ich überprüfe auch, ob das Blatt in der aktuellen Arbeitsmappe vorhanden ist. Also beide sind wahr.
Aber warum bekomme ich diesen Laufzeitfehler? Und warum wird dieses Blatt WS-A-Copy immer noch in Arbeitsmappe A gelöscht? Und warum ist dies ein Problem in Office 2016, aber mit Office 2013 ist es in Ordnung?
Kann mir jemand einen Tipp geben? Danke im Voraus!
Wie sind Sie durch solche Variablen gekommen? Mein Excel 2013 Compiler würde sie nicht übergeben – user3598756
Um Ihrer selbst willen, vollständig qualifizieren Sie die Arbeitsmappe Variablen und nicht verwenden auswählen oder aktivieren. Es ist wahrscheinlich, dass dies zum Fehler – RGA
@ user3598756 beiträgt: Ich habe gerade die Variablennamen geändert, um den Code lesbarer zu machen –