Solución:
Desde el libro de trabajo wb
pertenece a otro instancia de la aplicación, debe usar
wb.Application.CutCopyMode = False
en lugar de
Application.CutCopyMode = False
dónde wb.Application
devuelve la instancia de las aplicaciones que libro de trabajo wb
pertenece a.
Lo que hago es simplemente copiar cualquier celda en blanco en mi ActiveWorkbook una vez que pegué los valores que copié anteriormente y ya no los necesito, y esto reemplaza los datos grandes en el Portapapeles con una cadena vacía (comparativamente nada) y me permite cerrar el libro de trabajo cuando lo necesito.
Entiendo que esto es más bien una solución, pero funciona todo el tiempo.
Otra solución
Lo que deberías intentar es conseguir el MSForms DataObject
e intenta ponerlo en el portapapeles
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
y luego bórrelo de la siguiente manera:
clipboard.Clear
Y si esto no funciona, siempre puede configurar el texto del portapapeles en vacío
clipboard.SetText ""
clipboard.PutInClipboard
los Application.CutCopyMode = False
no me funcionó para borrar el búfer o dejar de recibir un error al intentar ActiveSheet
. Pegar errorActiveSheet
. Pegar error
Para borrar un búfer grande, que está produciendo un ActiveSheet
El error de pegar, por ejemplo, es simplemente copiar una celda vacía, por ejemplo Range("A1").Copy
, donde la celda A1 estaría vacía o muy pequeña. ¡Esto hará que el búfer sea realmente pequeño! ¡Fácil solución! Quizás no sea exactamente correcto, pero es funcionalmente correcto.