Notifications
Clear all

Erro 462

4 Posts
3 Usuários
0 Reactions
1,063 Visualizações
(@prffalcao)
Posts: 2
New Member
Topic starter
 

Tenho uma rotina que abre e preenche um arquivo do word com informações de uma tabela no excel.
Tudo roda perfeitamente bem da primeira vez, mas quando rodo a segunda ele apresenta o erro 462. Alguma ideia?

Private Sub btn_montar_contrato_Click()

Dim WdApp As Word.Application
Dim wdDOC As Word.Document
Dim rng As Word.Range
Set wdDOC = Nothing
Dim wdtemp As Word.Document

On Error Resume Next
Set WdApp = GetObject(, "Word.Application")
If Err.Number > 0 Then Set WdApp = CreateObject("Word.Application")
On Error GoTo 0

WdApp.DisplayAlerts = False
WdApp.Visible = True

For i = 10 To 11
Set wdDOC = Word.Documents.Open("C:UserspauloDesktopteste2modelo_recisao.docx", readyonly = True)
With wdDOC
'*Dados locador
.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#nome"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("d" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#datainic"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("h" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#datarec"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("k" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#horario"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("l" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#nivel"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("m" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#faculdade"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("n" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#datafim"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("k" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#unidade"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("c" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#curso"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("q" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#horas"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("t" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#hext"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("z" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#datarec"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("w" & i), wdReplaceAll

.Application.Selection.HomeKey Unit:=wdStory
.Application.Selection.Find.ClearFormatting
.Application.Selection.Find.Forward = True
.Application.Selection.Find.Text = "#supervisor"
.Application.Selection.Find.Execute , , , , , , , , , Plan3.Range("v" & i), wdReplaceAll

.SaveAs ("C:UserspauloDesktopteste2" & Range("d" & i).Value & "_RECISAO.docx")
.Close
Set wdDOC = Nothing
End With
Next

WdApp.DisplayAlerts = True
WdApp.Quit acQuitSaveNone
Set wdDOC = Nothing
Set WdApp = Nothing

End Sub

 
Postado : 14/04/2017 7:51 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa noite,

Coloque um arquivo de exemplo, assim fica mais fácil ajudar.

att,

 
Postado : 14/04/2017 7:24 pm
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

prffalcao, seja bem vindo ao Planilhando!

Antes de mais nada, permita-me apresentar-lhe duas recomendações:

  • A primeira é quanto às postagens de macros aqui no fórum: quando for postar código VBA, principalmente longos assim, use as Tags [ code] antes do início e [/ code] (sem espaço) após a última linha de código para deixar o post organizado e facilitar pesquisas de outros usuários (é o botão "Code" da barra de edição). Ou após colar seu código aqui, selecione todo ele e aperte o botão "Code" que já insere nas extremidades.[/*:m:225citn0]
  • A segunda diz respeito a uma particularidade da construção de seu código: se possível, habitue-se a usar Option Explicit na área de declarações do módulo, se é que já não está habituado, pois evita muitos erros por não declarar alguma variável ou por grafar incorretamente algumas delas, como aconteceu em dois pontos de seu código (readyonly e acQuitSaveNone).[/*:m:225citn0][/list:u:225citn0]
  • Abaixo erros anotados em vermelho e alterações em verde:

    Set wdDOC = Word.Documents.Open("C:UserspauloDesktopteste2modelo_recisao.docx", readyonly= True)
    Set wdDOC = wdApp.Documents.Open("C:UserspauloDesktopteste2modelo_recisao.docx", ReadOnly:= True)

    e

    WdApp.Quit acQuitSaveNone
    WdApp.Quit wdDoNotSaveChanges

    Nesta última, para sair sem salvar, vc usou uma Enum que é do Access (acQuitSaveNone) que tem valor 2 enquanto a do Word (wdDoNotSaveChanges ) tem valor 0.

     
Postado : 14/04/2017 7:57 pm
(@prffalcao)
Posts: 2
New Member
Topic starter
 

Caros,

Agradeço muito as informações prestadas.
Tentarei seguir as recomendações.
Vou realizar o teste com as sugestões de alteração e logo postarei o resultado.
agradeço mais uma vez a gentileza.

 
Postado : 14/04/2017 8:07 pm