¿Cómo puedo evitar el cuadro de mensaje del portapapeles al copiar grandes cantidades de datos en Excel?

¿Cómo puedo evitar el cuadro de mensaje del portapapeles al copiar grandes cantidades de datos en Excel?

Tengo una macro que copia 4 hojas de un libro a un libro nuevo y lo guarda con otro nombre.

Desafortunadamente, el cuadro de mensaje me pregunta si lo haría.Me gustaría que esta gran cantidad de datos esté disponible para otras aplicaciones.está provocando que este trabajo automatizado se vuelva ligeramente manual.

Se agradecería cualquier consejo sobre cómo evitar el cuadro de mensaje del portapapeles, o simplemente hacer que responda No automáticamente.

Respuesta1

Modificaría la macro. Desactive las alertas cuando se inicie la macro y vuelva a activarlas cuando finalice la macro. es decir Application.DisplayAlerts = False

Respuesta2

El problema Application.DisplayAlerts = Falsees que puede ocultar una alerta que necesitas ver.

Úselo Application.CutCopyMode = Falsedespués de pegar, lo que elimina el enlace al rango grande del portapapeles.

Respuesta3

Estoy de acuerdo con Jon Peltier: "El problema Application.DisplayAlerts = Falsees que puede ocultar una alerta que necesitas ver". Además, debe recordar configurarlo Application.DisplayAlerts = Truedespués de haber terminado, por lo que son 3 líneas de código para cada pegado Y si su programa se interrumpe ANTES, Application.DisplayAlerts = Truesin saberlo, habrá desactivado las alertas hasta que salga de Excel.

Probé su sugerencia Application.CutCopyMode = Falsedespués de pegar, funciona bien. Aquí hay un ejemplo en 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

Respuesta4

Encontré este documento de MS sobre esto. Parece que puedes usar algunas soluciones programáticas diferentes en tu macro para resolver este problema. Simplemente depende de qué estés copiando exactamente en el portapapeles.KB n.º 287392

Aquí está la parte relevante:

Método 2: salir de CutCopyMode
Si está utilizando la macro de Visual Basic para Aplicaciones para cortar o copiar celdas, inserte la siguiente línea inmediatamente antes de la línea que cierra el libro

workbook.Application.CutCopyMode = False

donde "libro de trabajo" es su objeto de libro de trabajo.

NOTA: Al configurar CutCopyMode en Verdadero o Falso, Excel puede cancelar el modo Cortar o Copiar.

Método 3: guardar el libro
Si está utilizando la macro de Visual Basic para Aplicaciones para cortar o copiar celdas, inserte la siguiente línea inmediatamente antes de la línea que cierra el libro.

workbook.Save

donde "libro de trabajo" es su objeto de libro de trabajo. Cuando guarda un libro, Excel ya no está en modo Cortar o Copiar.

información relacionada