Entrar com a conta da Microsoft
Entrar ou criar uma conta.
Olá,
Selecionar uma conta diferente.
Você tem várias contas
Escolha a conta com a qual você deseja entrar.

Sintomas

Ao executar o código que usa a Automação para controlar o Microsoft Excel, um dos seguintes erros pode ocorrer:

No Microsoft Excel 97 e em versões posteriores do Excel, você recebe uma das seguintes mensagens de erro:

Mensagem de erro 1

Erro em tempo de execução '1004':
Falha no método '<nome do método>' do objeto '_Global'

Mensagem de erro 2

Erro definido por objeto ou definido por aplicativo

No Microsoft Excel 95, você recebe uma das seguintes mensagens de erro:

Mensagem de erro 1

Erro de tempo de execução '-2147023174'
Erro de Automação OLE

Mensagem de erro 2

Erro de tempo de execução '462':
O computador de servidor remoto não existe ou não está disponível.

Causa

O Visual Basic estabeleceu uma referência ao Excel devido a uma linha de código que chama um objeto, método ou propriedade do Excel sem qualificar o elemento com uma variável de objeto do Excel. O Visual Basic não libera essa referência até que você termine o programa. Essa referência errante interfere no código de automação quando o código é executado mais de uma vez.

Resolução

Para resolve esse problema, modifique o código para que cada chamada para um objeto, método ou propriedade do Excel seja qualificada com a variável de objeto apropriada.

Status

Este é o comportamento padrão.

Informações adicionais

Para automatizar o Microsoft Excel, você estabelece uma variável de objeto que geralmente se refere ao objeto Aplicativo do Excel ou ao objeto Workbook do Excel. Em seguida, outras variáveis de objeto podem ser definidas para se referir a uma Planilha, um Intervalo ou outros objetos no modelo de objeto do Microsoft Excel. Ao escrever código para usar um objeto, método ou propriedade do Excel, você sempre deve preceder a chamada com a variável de objeto apropriada. Se você não fizer isso, o Visual Basic estabelecerá sua própria referência ao Excel. Essa referência pode causar problemas ao tentar executar o código de automação várias vezes. Observe que, mesmo que a linha de código comece com a variável de objeto, uma chamada pode ser feita para um objeto, método ou propriedade do Excel no meio da linha de código que não é precedida de uma variável de objeto.

As etapas a seguir ilustram como reproduzir esse problema e como corrigir o problema.

Etapas para reproduzir o comportamento

  1. Inicie um novo projeto STANDARD EXE no Visual Basic. O Form1 é criado por padrão.

  2. No menu Projeto, clique em Referências e, em seguida, marcar a Biblioteca de Objetos para a versão do Excel que você pretende automatizar.

  3. Coloque um controle CommandButton no Form1.

  4. Copie o exemplo de código a seguir para a Janela de Código do Formulário1.

          Option Explicit
    
          Private Sub Command1_Click()
             Dim xlApp As Excel.Application
             Dim xlBook As Excel.Workbook
             Dim xlSheet As Excel.Worksheet
             Set xlApp = CreateObject("Excel.Application")
             Set xlBook = xlApp.Workbooks.Add
             Set xlSheet = xlBook.Worksheets("Sheet1")
             xlSheet.Range(Cells(1, 1), Cells(10, 2)).Value = "Hello"
             xlBook.Saved = True
             Set xlSheet = Nothing
             Set xlBook = Nothing
             xlApp.Quit
             Set xlApp = Nothing
          End Sub
    
  5. No menu Executar , clique em Iniciar ou pressione F5 para iniciar o programa.

  6. Clique no controle CommandButton . Não ocorre nenhum erro. No entanto, uma referência ao Excel foi criada e não foi lançada.

  7. Clique no controle CommandButton novamente. Observe que você recebe uma das mensagens de erro que são discutidas na seção "Sintomas".

    Observação A mensagem de erro ocorre porque o código se refere ao método da célula sem preceder a chamada com o
    variável de objeto xlSheet.

  8. Pare o projeto e altere a seguinte linha de código:

    xlSheet.Range(Cells(1,1),Cells(10,2)).Value = "Hello"
    

    Altere a linha de código para se assemelhar à linha de código a seguir.

    xlSheet.Range(xlSheet.Cells(1,1),xlSheet.Cells(10,2)).Value = "Hello"
    
  9. Execute o programa novamente. Observe que você pode executar o código várias vezes sem receber uma mensagem de erro.

Referências

189618 Você pode receber a mensagem de erro "Erro de tempo de execução '-2147023174' (800706ba)" ou o "erro de tempo de execução '462'" ao executar o código do Visual Basic que usa Automação para controlar Word
 

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.

As comunidades ajudam você a fazer e responder perguntas, fazer comentários e ouvir especialistas com conhecimento avançado.

Essas informações foram úteis?

Qual é o seu grau de satisfação com a qualidade do idioma?
O que afetou sua experiência?
Ao pressionar enviar, seus comentários serão usados para aprimorar os produtos e serviços da Microsoft. Seu administrador de TI poderá coletar esses dados. Política de Privacidade.

Agradecemos seus comentários!

×