question

Codigo de Macro de VBA do Excel problemas para executar a macro em computadores diferentes?

Em primeiro lugar, obrigado por ler isto. Eu sou muito mais um novato VBA, e este é um projeto para o trabalho, então qualquer ajuda seria muito apreciada.

Eu tenho uma pasta de trabalho ("modelo Scorecard_working") com folhas "Itens abertos" e "Observações fechado". Eu escrevi duas macros para fazer 2 procedimentos necessários.

O primeiro destina-se ao mover uma linha "Abrir itens" folha a folha "observações fechado" quando uma linha está marcada "Fechado" (na coluna R).

O segundo pretende mover uma linha de folha "observações fechado" folha "abrir itens" quando uma linha está marcada "Aberta" (na coluna W).

-Essa primeira macro funciona como um encanto no computador que eu escrevi sobre no Excel 2003, mas quando tento executar a macro no mesmo arquivo em outro computador com o Excel 2003, recebo um erro de tempo de execução na tela do Excel (2147417848(80010108) "Método 'Corte' do objeto"Intervalo"falhou") e na tela do VBA, que recebo a mensagem "o objeto invocado foi desconectado do seus clientes". Como isso pode ser corrigido para rodar em computadores diferentes?

Sub tester()
Dim rng como gama, usedcell como gama
Dim lastrow como longo, x As Boolean

Set rng = Intersect (folhas ("abrir itens Track List").UsedRange _
Folhas ("abrir itens Track List").Range("R:R"))

Para cada usedcell em rng
x = avaliar ("= não (ISERROR (Pesquisar (""fechado" "," & usedcell.Endereço & ",1)))")
Se x então
LastRow = Sheets ("observações fechado").Células (Rows.Count, "R").End(xlUp).Linha
Folhas ("abrir itens Track List").Linhas (usedcell.Linha).Copie folhas ("observações fechadas").Linhas (lastrow + 1)
Folhas ("abrir itens Track List").Linhas (usedcell.Linha).ClearContents
End If
Próxima usedcell

End Sub


Este segundo código de Macro que eu usei para enviar dados de volta para "Itens abertos" de "Observações fechado". Corretamente corta as linhas com a condição "Aberto", mas ele falha em 2 partes:
1) só corta a linha superior que diz "Abrir" em vez de cortar todas as linhas que dizem "Abrir" na coluna W-preciso dela para cortar todas as linhas que dizem "Aberto" simultaneamente
2) quando ele corta e cola a outra linha de "Observações fechado" para "Itens abertos", cola sobre o último recortar e colar-eu preciso dele para colar para a próxima linha vazia

Sub x)
Dim rng como gama

Set rng = Intersect (folhas ("observações fechado").UsedRange _
Folhas ("observações fechadas").Colunas ("W"))

Para cada rng em colunas ("W").SpecialCells(x1CellTypeConstants).Áreas
Selecione o caso rng(1)
Caso "Abrir"
Rows(RNG(1).Linha).Corte folhas ("abrir itens Track List").Linhas (Count + 1).Offset(1,0)

End Select
Rng próxima
End Sub


Qualquer ajuda é muito apreciada, obrigado antecipadamente! Edit:
Sem ofensa tomada! Preciso de ajuda, e eu estou contente de tê-lo de gente com mais experiência!

Eu tentei o código "Private Sub Worksheet_BeforeDoubleClick" e uma vez que funciona em outros computadores (ele corta e cola para outra folha), mas depois dessa primeira vez, Excel congela-se novamente. Qualquer idéia sobre o que fazer?

Além disso, eu li o artigo e acredito que eu estou fazendo uma chamada não qualificada no código original, mas não sei como resolver isso.

resposta Resposta

Edit 2: Você recebe a mesma mensagem de erro usando os manipuladores de eventos? Eles congelar-se em ambos os PC ou apenas o 'outro' PC referidos anteriormente?

Edit:

Você pode querer experimentar estes dois manipuladores.



Selecione a planilha 'Abrir itens Track List' e clique com o botão direito na guia da folha.

Selecione 'Ver código'.

Cole este código em área de edição à direita:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Destino ActiveCell.EntireRow.Copy: = Sheets ("observações fechadas"). _
Range ("A" & Rows.Count). End(xlUp).Offset (1, 0)
ActiveCell.EntireRow.Delete
End Sub

Selecione a folha 'fechado observações' e clique com o botão direito na guia da folha.

Selecione 'Ver código'.

Cole o código a seguir a área de edição à direita:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Destino ActiveCell.EntireRow.Copy: = Sheets ("abrir itens Track List"). _
Range ("A" & Rows.Count).End(xlUp). Offset (1, 0)
ActiveCell.EntireRow.Delete
End Sub


Feche o VBE e retornar à planilha.

Duplo clique em qualquer célula em qualquer linha em uma folha e que a entrada será inserida em outra folha e eliminada na folha atual.

=============================


Em algum lugar no seu código, você está fazendo uma chamada' sem reservas'. Este é um trecho do artigo referenciado no link que se segue:

Alguns dos erros ou comportamentos inesperados que podem ocorrer se você fizer uma chamada não qualificada para um objeto do Office são as seguintes:

Erro 462 ou erro-2147417848: O código usa um método não qualificado em uma instância do Office que foi encerrada (por exemplo, chamando o método Quit). Se o código está estruturado para criar uma nova instância de aplicativo do Office cada vez que ele é executado, ele normalmente irá fechar a instância no final da tarefa. Se esse código é executado uma segunda vez, a chamada não qualificada é malsucedida. VB chama a instância anterior, mas o servidor remoto tem descarregado.

http://support.Microsoft.com/default.aspx?scid=kb;en-US;Q319832

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
ROBSON na 10 Set 2019
0
tenho uma planilha com macros gravados nela e quando encaminho para outra pessoa via email e ela abre as macros não funcionam, como faço para fazer com que as macros se locomoverem juntamente com a planilha criada

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-2022
All rights reserved