Eu tenho uma macro que copia 4 planilhas de uma pasta de trabalho para uma nova pasta de trabalho e salva com outro nome.
Infelizmente, a caixa de mensagem me perguntando se eu gostariagostaria de disponibilizar esta grande quantidade de dados para outras aplicaçõesestá fazendo com que esse trabalho automatizado se torne um pouco manual.
Qualquer dica sobre como evitar a caixa de mensagem da área de transferência ou apenas fazer com que ela responda Não automaticamente será apreciada.
Responder1
Eu modificaria a macro. Desative os alertas quando a macro for iniciada e ative-os novamente quando a macro for concluída. ou seja Application.DisplayAlerts = False
Responder2
O problema Application.DisplayAlerts = False
é que ele pode ocultar um alerta que você precisa ver.
Use Application.CutCopyMode = False
após colar, que remove o link para o intervalo grande da área de transferência.
Responder3
Concordo com Jon Peltier: "O problema Application.DisplayAlerts = False
é que isso pode ocultar um alerta que você precisa ver". Além disso, você deve se lembrar de definir Application.DisplayAlerts = True
depois de terminar, então são 3 linhas de código para cada pasta E se o seu programa interromper ANTES, Application.DisplayAlerts = True
você terá desativado os alertas sem saber até sair do Excel.
Testei a sugestão dele Application.CutCopyMode = False
depois de colar, funciona bem. Aqui está um exemplo 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
Responder4
Encontrei este documento da 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
Aqui está a parte relevante:
Método 2: Sair do CutCopyMode
Se você estiver usando a macro Visual Basic for Applications para cortar ou copiar células, insira a seguinte linha imediatamente antes da linha que fecha a pasta de trabalho
workbook.Application.CutCopyMode = False
onde "pasta de trabalho" é o seu objeto de pasta de trabalho.
NOTA: Ao definir CutCopyMode como True ou False, o Excel pode cancelar o modo Cortar ou Copiar.
Método 3: Salvar a pasta de trabalho
Se você estiver usando a macro Visual Basic for Applications para cortar ou copiar células, insira a seguinte linha imediatamente antes da linha que fecha a pasta de trabalho
workbook.Save
onde "pasta de trabalho" é o seu objeto de pasta de trabalho. Quando você salva uma pasta de trabalho, o Excel não está mais no modo Recortar ou Copiar.