2012-04-04 12 views
1

Ich habe eine Tabelle mit einem Blatt namens "Sheet1". Ich habe alle anderen Blätter versteckt und sie entfernt. Wenn ich den VBA-Editor öffne, habe ich unter "Microsoft Excel-Objekte" fast 4000 Blätter aufgelistet, die ich nicht per Rechtsklick entfernen kann.So löschen Sie mehrere leere "Microsoft Excel-Objekte"

Es ist meine Überzeugung, dass dies die Größe der Datei viel zu groß (~ 6 MB) verursacht, wenn keine Daten in "Sheet1" enthalten sind. Ich habe versucht, die Methode "goto> special> objects" zu verwenden, und auf diese Weise werden keine Objekte gefunden.

Haben Sie Ideen, wie Sie alle diese leeren Objekte löschen können?

VBA Explorer

+0

Sid ist wie üblich korrekt, aber ich bin gespannt, wie Sie eine Arbeitsmappe mit 4000 Arbeitsblättern bekommen haben. –

+0

Ich möchte es auch wissen? Ich habe einige andere Berichte darüber in meinen Untersuchungen gesehen, aber ich bin immer noch verwirrt darüber, wie es tatsächlich passiert ist. Ich bin nicht für die Verwendung des Blatts verantwortlich, sondern versuche dieses Problem zu beheben. –

+0

Haben Sie Google Desktop installiert? –

Antwort

1

Es gibt viele Möglichkeiten zu erreichen, was Sie wollen. Der schnellste Weg, der rechten Maustaste auf Tabelle1 und klicken Sie auf „Verschieben oder Kopieren“ ~~> „Neues Buch“ ~~> „OK“

Jetzt können Sie die neue Arbeitsmappe speichern und löschen Sie die alte :)

followup

Leider wird dies nicht funktionieren - wir einige ziemlich lange Formeln in anderen Blättern mit genau diesem Problem und Excel wird nur kopieren sie die ersten 255 Zeichen von ihnen haben. Darüber hinaus wird der VBA-Code in dem Originalblatt nicht kopiert, was zusätzliche Schritte zum Neuanlegen jeder Tabelle, die von diesem Problem betroffen ist, enthält.

In einem solchen Fall versuchen, diesen Code

Option Explicit 

Sub Sample() 
    Dim ws As Worksheet 

    Application.ScreenUpdating = False 
    Application.DisplayAlerts = False 

    For Each ws In ThisWorkbook.Sheets 
     If ws.Name <> "Sheet1" Then ws.Delete 
    Next 

    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 
End Sub 

enter image description here

+0

Leider wird dies nicht funktionieren - wir haben einige ziemlich lange Formeln in anderen Blättern mit genau diesem Problem und Excel wird nur die ersten 255 Zeichen von ihnen kopieren. Darüber hinaus wird der VBA-Code in dem Originalblatt nicht kopiert, was zusätzliche Schritte zum Neuanlegen jeder Tabelle, die von diesem Problem betroffen ist, enthält. –

+0

Der VBA-Code im Originalblatt wird kopiert, der VBA-Code aus dem Modul jedoch nicht. :) Darf ich mir das Arbeitsbuch ansehen? Wenn ja, können Sie es in wikisend.com hochladen und den Link hier teilen. –

+0

Es tut mir leid, ich kann es nicht hochladen. Sie haben Recht, dass der Blattcode kopiert wird, die Module aber nicht. –

2

Ich glaube, ich fand eine Lösung, zumindest für mich, dass es funktioniert und ich bin nicht sehr versierte mit VBA. Fügen Sie das Eigenschaftenfenster (unter Ansicht) hinzu, wählen Sie jedes Blatt aus, und ändern Sie die Option Sichtbar in -1 - xlsheetvisible, damit es in Excel angezeigt wird und Sie die Registerkarte löschen können.