Posteriormente a buscar en diversos repositorios y páginas de internet al final hemos descubierto la respuesta que te enseñaremos ahora.
Solución:
sería un simple
Application.CutCopyMode = False
funciona para su situación, o esta opción no es viable?
Vi esto en otra publicación y lo probé con Word VBA.
'Clearing the Office Clipboard
Dim oData As New DataObject 'object to use the clipboard
oData.SetText text:=Empty 'Clear
oData.PutInClipboard 'take in the clipboard to empty it
Simplemente copie y pegue en su código donde quiera que necesite borrar el Portapapeles.
Otra cosa que noté es que cuando .Quit
un programa, digamos Excel, me sigue preguntando si quiero conservar los datos es el Portapapeles. Una solución es borrar el portapapeles usando el código indicado anteriormente. Vea abajo:
'Clearing the Office Clipboard
Dim oData As New DataObject 'object to use the clipboard
oData.SetText text:=Empty 'Clear
oData.PutInClipboard 'take in the clipboard to empty it
'You can also just remove the Alert Messages from the Excel Program while
'the code is running
'Remove alert Messages from the Excel Program when closing
ExcelProgram.DisplayAlerts = False
'Quiting the Excel Application
ExcelProgram.Quit
Usé el ejemplo anterior en un código VBA para importar datos desde un archivo de Excel. Mira aquí
Aquí hay una solución que funcionó para mí. Esto se basa en una publicación de Zack Barresse en VBAexpress.com:
Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EmptyClipboard Lib "user32" () As Long
Public Declare Function CloseClipboard Lib "user32" () As Long
Public Sub ClearClipboard()
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
End Sub
Después de copiar esta función a su proyecto VBA, use ClearClipboard
para limpiarlo