Bom Dia a Todos!
Eu tenho um documento do word onde eu coloquei varios indicadores e pra cada indicador eu fiz uma macro, os campos da macro eu trago de um arquivo em dbf, ele executa a primeira macro ai qdo vai pra segunda macro da um erro
Erro em tempo de execução '4605' Este método ou propriedade não está disponível porque alguns dos objetos ou todos eles não se referem a uma tabela.
'Insere uma nova linha na tabela
Selection.MoveRight Unit:=wdCell
Eu fiz varias pesquisas e encontrei essa referencia.
No tempo de execução:Ocorridos por efetuar uma operação inválida(divisão por zero,abertura de arquivo excluido),etc.
Eu não tenho muita experiencia com macros mas eu acho pq eu repito esse comando em todas as macros dentro desse documento pq o primeiro ele executa.
Na realidade eu precisando q a cada itens ele acrescente uma linha alguem saberia me explicar pq eu não sei.
Muito Obrigado
Estou colocando a macro se alguem puder me ajudar eu agradeço muito.
A primeira macro
Sub tabprod()
' orcaword Macro
'
'
Dim nItem As Integer
Dim Campo As String
Selection.GoTo what:=wdGoToBookmark, Name:="tabprod"
Selection.Find.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
nItens = Val(ActiveDocument.Variables.Item("prt_nroit_pro").Value)
For K = 1 To nItens
'Insere uma nova linha na tabela
' Selection.MoveRight Unit:=wdCell
' Insere o campo Produto
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_prod" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere forma do produto
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_forprod" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere peso
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_peso" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere modelo
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_modelo" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere dimensão
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_dimen" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere material
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_material" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere rendimento
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_rend" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
Next
End Sub
2 Macro
Sub tabequi()
' tabequi Macro
'
Dim nItem As Integer
Dim Campo As String
Selection.GoTo what:=wdGoToBookmark, Name:="tabequi"
Selection.Find.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
nItens = Val(ActiveDocument.Variables.Item("prt_nroi_equi").Value)
For K = 1 To nItens
' Insere o campo item
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_item" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere maquina
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_maq" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
' Insere descrição
Selection.MoveRight Unit:=wdCell
Campo = "DOCVARIABLE prt_desc" & Trim(Str(K))
Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:=Campo, PreserveFormatting:=True
Next
End Sub