Wie kann ich das Meldungsfeld der Zwischenablage beim Kopieren großer Datenmengen in Excel umgehen?

2

Ich habe ein Makro, das 4 Blätter von einer Arbeitsmappe in eine neue Arbeitsmappe kopiert und sie unter einem anderen Namen speichert.

Leider führt das Meldungsfeld, in dem ich gefragt werde, ob ich diese große Datenmenge für andere Anwendungen verfügbar machen möchte, dazu, dass dieser automatisierte Auftrag leicht manuell ausgeführt wird.

Alle Tipps, wie Sie das Nachrichtenfeld in der Zwischenablage umgehen oder einfach automatisch mit "Nein" antworten lassen, sind dankbar.

RocketGoal
quelle

Antworten:

5

Ich würde das Makro ändern. Deaktivieren Sie Warnungen, wenn das Makro gestartet wird, und aktivieren Sie sie wieder, wenn das Makro fertig ist. dh Application.DisplayAlerts = False

mischab1
quelle
6

Das Problem dabei Application.DisplayAlerts = Falseist, dass möglicherweise eine Warnmeldung ausgeblendet wird, die Sie sehen müssen.

Verwenden Sie Application.CutCopyMode = Falsenach dem Einfügen, um den Link zum großen Bereich aus der Zwischenablage zu entfernen.

Jon Peltier
quelle
Ich habe dies als ein Xlam-Add-In, das auf dem Ereignis vor dem Schließen ausgeführt wird
FreeSoftwareServers,
1

Ich habe dieses MS-Dokument dazu gefunden. Es sieht so aus, als könnten Sie in Ihrem Makro verschiedene programmatische Lösungen verwenden, um dieses Problem zu beheben. Es hängt nur davon ab, was genau Sie in die Zwischenablage kopieren. KB # 287392

DaBaer
quelle
1
Der Artikel war sehr nützlich. Vielen Dank.
RocketGoal
Antwort nur auf Link :(
FreeSoftwareServers
1

Ich stimme Jon Peltier zu: "Das Problem mit Application.DisplayAlerts = False besteht darin, dass möglicherweise eine Warnmeldung ausgeblendet wird, die Sie sehen müssen." Außerdem müssen Sie sich "Application.DisplayAlerts = True" merken, nachdem Sie fertig sind. Das sind also 3 Codezeilen für jede Einfügung UND wenn Ihr Programm VOR "Application.DisplayAlerts = True" eine Unterbrechung durchführt, werden Warnungen unwissentlich deaktiviert, bis Sie beenden Excel.

Ich habe seinen Vorschlag "Application.CutCopyMode = False after the paste" getestet, es funktioniert gut 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
Patrick Boylan
quelle