Nun, zuerst habe ich beim Googeln ein paar Antworten gefunden, aber die meisten Foren sind in meinem Office Network
blockiert, daher diese Frage hier stellen! Eine weitere Absicht ist, eine Antwort in einfachem Englisch zu erhalten: P
Ich verstehe, wenn wir Application.CutCopyMode = False
gesetzt haben, werden die kopierten/ausgeschnittenen Ergebnisse verschwunden (d. H. Der Speicher wird gelöscht). Kann jemand bitte helfen?
Unter Bezugnahme auf diesen Link ( http://www.excelforum.com/Excel-programming-vba-macros/867665-application-cutcopymode-false.html ) lautet die Antwort wie folgt:
Application.CutCopyMode=False
wird im durch Makrorecorder generierten Code angezeigt, wenn Sie Zellen kopieren und ausschneiden und einfügen. Der Makrorecorder führt das Kopieren/Ausschneiden und Einfügen in separaten Anweisungen aus und verwendet die Zwischenablage als Zwischenpuffer. Ich denke, Application.CutCopyMode = False
löscht die Zwischenablage. Ohne diese Zeile erhalten Sie die Warnung 'There is a large amount of information on the Clipboard....'
', wenn Sie die Arbeitsmappe mit einer großen Datenmenge in der Zwischenablage schließen.
Mit optimiertem VBA-Code können Sie normalerweise die Operationen zum Kopieren/Ausschneiden und Einfügen in einer Anweisung ausführen, sodass die Zwischenablage nicht verwendet wird und Application.CutCopyMode = False
nicht erforderlich ist und Sie keine Warnung erhalten.
Normalerweise finden Sie beim Kopieren einer Zelle die folgende Anweisung in der Statusleiste (unten in Ihrem Arbeitsblatt).
"Ziel auswählen und Eingabetaste drücken oder Einfügen wählen"
Dann drücken Sie, ob Sie die Eingabetaste drücken oder Einfügen auswählen, um den Wert der Zelle einzufügen.
Wenn Sie danach nicht die Esc-Taste gedrückt haben, können Sie den Wert der Zelle mehrmals einfügen
Application.CutCopyMode = False macht dasselbe wie die Esc-Taste. Wenn Sie sie aus Ihrem Code entfernen, werden Sie feststellen, dass Sie den Zellenwert mehrmals einfügen können.
Und wenn Sie das Excel geschlossen haben, ohne die Taste Esc.__ zu drücken, wird die Warnmeldung angezeigt, dass in der Zwischenablage viele Informationen enthalten sind.
Es gibt eine gute Erklärung unter __. https://stackoverflow.com/a/33833319/903783
Die erwarteten Werte lauten xlCopy und xlCut laut xlCutCopyMode-Enumeration ( https://msdn.Microsoft.com/en-us/VBA/Excel-VBA/articles/xlcutcopymode-enumeration-Excel ), jedoch 0 value (das ist, was False in VBA entspricht) scheint nützlich zu sein, um Excel-Daten in der Zwischenablage zu löschen.