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 = False
es que puede ocultar una alerta que necesitas ver.
Úselo Application.CutCopyMode = False
después de pegar, lo que elimina el enlace al rango grande del portapapeles.
Respuesta3
Estoy de acuerdo con Jon Peltier: "El problema Application.DisplayAlerts = False
es que puede ocultar una alerta que necesitas ver". Además, debe recordar configurarlo Application.DisplayAlerts = True
despué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 = True
sin saberlo, habrá desactivado las alertas hasta que salga de Excel.
Probé su sugerencia Application.CutCopyMode = False
despué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.