question

Cursor de ampulheta piscando ao executar macro do excel?

Eu tenho algumas macros minha pasta de trabalho excel. Eu sei como parar a cintilação da tela, ou seja, adicionando-se application.screenupdating = false para o início do código e application.screenupdating = true para o final do código. Mas o que eu quero fazer é não parar a tela piscar para não usar quaisquer códigos selecionando em minha macro e não tenho nenhum problema nisso. Quero apenas omitir o cursor de ampulheta piscando que aparece quando a macro é executada. Eu olhei para essa solução no google, mas o que eu recebi é apenas a maneira de parar a cintilação da tela para não parar de piscar de cursor de ampulheta. Alguém pode me ajudar?

resposta Resposta

Enquanto eu como solução de garbo, acho que o que realmente precisa dirigida é provavelmente sua macro em si. Sempre que você executar uma macro que loops, mais tem fazer um loop por mais tempo sua macro vai levar. Como você disse, transformando o screenupdating fora ajuda. Não só o que ajuda a parar de piscar, mas também ajuda a fazer a macro a correr mais rápido. Você também está fazendo outra boa jogada, não selecionando células. Que também acelera até a macro. Mas há duas outras coisas que você pode querer verificar para fora o que podem ajudar muito. Primeiro, você pode querer tentar a transferência de dados para uma matriz, trabalhar com os dados da matriz e, em seguida, transferir os dados para trás. Que me ajudou muito. Demorou algumas macros de loop em várias camadas, eu tinha criado e mudou-os de tomar 15 minutos ou mais para cerca de 1 segundo ou de poucos segundos. Que o tempo muitas vezes pode ser reduzido ainda mais, usando uma coleção com uma chave. Isso pode poupar tempo, muitas vezes mudando um loop em várias camadas para um único loop em camadas. Por exemplo, para verificar se uma parte está em uma lista, você pode verificar isso contra uma coleção com chave em vez de um loop através de cada lista, mais e mais. Se o item não está na coleção, ele irá adicionar a ele. Se for, será erro para fora. A adição pode ser facilmente removida, se necessário. E o retorno de um erro pode ser usado para dizer se é ou não na lista. Por exemplo, se eu tenho duas listas de 100 peças, e estou tentando combiná-los. Indo de um loop duplo para um único loop, pode reduzir as verificações que o programa tem que fazer a 1/100 o número de verificações, reduzindo incrivelmente o tempo.




resposta Não é a resposta que você estava procurando?
Adicionar um comentário ou resposta a esta pergunta

Pesquisar uma resposta melhor..
Ou, fazer uma pergunta..
Comentários

Guest
Renato Ferreira na 23 Fev 2014
0
Resposta simples: DoEvents
Ou seja, na macro coloque em uma linha DoEvents.
Assim, durante a execução de uma macro o cursor fica livre para clicar onde quiser.

DoEvents se refere a submeter o Excel a outros processos durante a execução do primeira macro.

O seu comentário
Acho que a resposta não está correta ou que você gostaria de acrescentar mais
alguma informação? Envie o seu comentário abaixo..

Guest


HTML não é permitido!

Image Code

Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!

Receber um email quando alguém acrescenta outro comentário a esta pergunta


Topo da página


Home  Terms
Copyright © Accelerated Ideas 2005-2023
All rights reserved