Ich habe ein Makro, das 4 Blätter aus einer Arbeitsmappe in eine neue Arbeitsmappe kopiert und unter einem anderen Namen speichert.
Leider erscheint die Meldung, ob ichdiese große Datenmenge gerne für andere Anwendungen verfügbar machenführt dazu, dass dieser automatisierte Job zunehmend manueller wird.
Ich bin für jeden Tipp dankbar, wie ich das Meldungsfeld in der Zwischenablage vermeiden oder es einfach automatisch mit „Nein“ beantworten kann.
Antwort1
Ich würde das Makro ändern. Deaktivieren Sie die Warnmeldungen, wenn das Makro startet, und aktivieren Sie sie wieder, wenn das Makro beendet ist. Application.DisplayAlerts = False
Antwort2
Das Problem dabei Application.DisplayAlerts = False
ist, dass möglicherweise eine Warnung ausgeblendet wird, die Sie sehen müssen.
Verwendung Application.CutCopyMode = False
nach dem Einfügen, wodurch die Verknüpfung zum großen Bereich aus der Zwischenablage entfernt wird.
Antwort3
Ich stimme Jon Peltier zu: „Das Problem dabei Application.DisplayAlerts = False
ist, dass möglicherweise eine Warnung ausgeblendet wird, die Sie sehen müssen.“ Außerdem müssen Sie daran denken, die Einstellungen Application.DisplayAlerts = True
nach Abschluss vorzunehmen, das sind also 3 Codezeilen für jedes Einfügen UND wenn Ihr Programm VORHER unterbricht, Application.DisplayAlerts = True
haben Sie unwissentlich die Warnungen deaktiviert, bis Sie Excel beenden.
Ich habe seinen Vorschlag Application.CutCopyMode = False
nach dem Einfügen getestet, er funktioniert einwandfrei. Hier ist ein Beispiel in someSpreadsheet.xls
:
Workbooks.OpenText Filename:="someDirectory\someFile.txt", _
DataType:=xlDelimited, TextQualifier:=xlNone, _
Tab:=True
Cells.Select
Selection.Copy
Windows("someSpreadsheet.xls").Activate
ActiveSheet.Paste
Application.CutCopyMode = 0
Windows("someFile.txt").Activate
ActiveWorkbook.Close
Antwort4
Ich habe dieses MS-Dokument dazu gefunden. Es sieht so aus, als könnten Sie in Ihrem Makro verschiedene Programmlösungen verwenden, um das Problem zu lösen. Es hängt nur davon ab, was genau Sie in die Zwischenablage kopieren.KB-Nummer 287392
Hier ist der relevante Teil:
Methode 2: Beenden des CutCopyMode
Wenn Sie Visual Basic für Applikationen-Makros zum Ausschneiden oder Kopieren von Zellen verwenden, fügen Sie die folgende Zeile unmittelbar vor der Zeile ein, die die Arbeitsmappe schließt
workbook.Application.CutCopyMode = False
wobei „Arbeitsmappe“ Ihr Arbeitsmappenobjekt ist.
HINWEIS: Wenn Sie CutCopyMode auf True oder False setzen, kann Excel den Ausschneide- oder Kopiermodus abbrechen.
Methode 3: Speichern der Arbeitsmappe
Wenn Sie Visual Basic für Applikationen-Makros zum Ausschneiden oder Kopieren von Zellen verwenden, fügen Sie die folgende Zeile unmittelbar vor der Zeile ein, die die Arbeitsmappe schließt
workbook.Save
wobei „Arbeitsmappe“ Ihr Arbeitsmappenobjekt ist. Wenn Sie eine Arbeitsmappe speichern, befindet sich Excel nicht mehr im Ausschneide- oder Kopiermodus.