Como criar várias ordens macro de sendkeys ordem linear de operações

0
Range ("D5").Select
ActiveCell.Resize(1, 25).Select
SendKeys ("%y1"), True 'Alt+Y1
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
SendKeys ("~"), True 'Enter, initiates the merge add-in function

Range ("D6").Select
ActiveCell.Resize(1, 25).Select
SendKeys ("%y1"), True 'Alt+Y1
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
SendKeys ("~"), True 'Enter, initiates the merge add-in function

Continua a selecionar cada célula na coluna D até D40 ...

Sempre que executo o código SendKeys, o VBA só inicia o último comando na sequência. Eu tento usar espera ou suspensão, mas a macro apenas atrasa o período de tempo listado e só executa o último conjunto de operações. Eu preciso que isso funcione de maneira linear (na ordem das operações desejadas).

Como posso ter certeza de que o conjunto de pressionamentos de teclas aconteça linearmente e em seqüência?

    
por Alex Linderman 26.03.2016 / 08:57

1 resposta

1

Use DoEvents

Range ("D5").Select
ActiveCell.Resize(1, 25).Select
DoEvents
SendKeys ("%y1"), True 'Alt+Y1
DoEvents
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
DoEvents
SendKeys ("~"), True 'Enter, initiates the merge add-in function
DoEvents

Range ("D6").Select
ActiveCell.Resize(1, 25).Select
DoEvents
SendKeys ("%y1"), True 'Alt+Y1
DoEvents
SendKeys ("%y2"), True 'Alt+Y2, Activates third part add-in
DoEvents
SendKeys ("~"), True 'Enter, 
DoEvents
    
por 26.03.2016 / 12:28