Como posso evitar a caixa de mensagens da área de transferência ao copiar grandes quantidades de dados no Excel?

1

Eu tenho uma macro que está copiando 4 folhas de uma pasta de trabalho para uma nova pasta de trabalho e salvando-a com outro nome.

Infelizmente, a caixa de mensagem perguntando se gostaria de disponibilizar essa grande quantidade de dados para outros aplicativos está fazendo com que esse trabalho automatizado se torne um pouco manual.

Qualquer dica sobre como evitar a caixa de mensagens da área de transferência, ou apenas responder automaticamente Não, será muito bem-vinda.

    
por RocketGoal 26.01.2012 / 17:02

4 respostas

4

Eu modificaria a macro. Desativar alertas quando a macro for iniciada e ativá-los novamente quando a macro estiver concluída. ou seja, Application.DisplayAlerts = False

    
por 26.01.2012 / 20:18
4

O problema com Application.DisplayAlerts = False é que ele pode ocultar um alerta que você precisa ver.

Use Application.CutCopyMode = False após a colagem, que remove o link para o intervalo grande da área de transferência.

    
por 29.01.2012 / 19:50
1

Eu encontrei este documento MS sobre isso. Parece que você pode usar algumas soluções programáticas diferentes em sua macro para resolver isso. Depende apenas do que exatamente você está copiando para a área de transferência. KB # 287392

    
por 26.01.2012 / 18:41
1

Concordo com Jon Peltier, "O problema com Application.DisplayAlerts = False é que ele pode ocultar um alerta que você precisa ver." Além disso, você precisa se lembrar de "Application.DisplayAlerts = True" depois de terminar, o que significa três linhas de código para cada pasta E se o seu programa interrompe ANTES de "Application.DisplayAlerts = True", você terá inadvertidamente alertas desativados até que você saia do Excel.

Eu testei sua sugestão "Application.CutCopyMode = False após a pasta", funciona bem em 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
    
por 04.08.2012 / 16:10