Array
(
)

Localizar variaveis iguais e alterar no word com vb 2008

Marcos Barea
   - 18 mar 2011

Olá pessoal,
Estou criando um programa em vb 2008, onde eu digito alguns dados como nome, RG, etc... e ele abre um documento do word onde ele altera esses dados atraves de uma variavel, porém essas variaveis se repetem varias vezes no documento mas nem todas elas se alteram, alguem poderia me dar uma ajuda?

Meu codigo:

Private Sub btnGeraAviso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGeraAviso.Click

Try

'Instancia a Aplicação Word.

objWord = CreateObject("Word.Application")

'Abre o documento .doc do Microsoft Word.

objWord.Documents.Open("C:\Documents and Settings\...\Documento.doc")

'Procura pela palavra "@Nome" e substitui pelo conteúdo indicado

SubstituiVariavel("@Nome1", NomeTextBox1.Text)
SubstituiVariavel("@RG1", RGTextBox1.Text)
SubstituiVariavel("@Dia1", cmbDia1.Text)
SubstituiVariavel("@Mes1", cmbMes1.Text)
SubstituiVariavel("@Ano1", cmbAno1.Text)
SubstituiVariavel("@Nome2", NomeTextBox2.Text)
SubstituiVariavel("@RG2", RGTextBox2.Text)
SubstituiVariavel("@Dia2", cmbDia2.Text)
SubstituiVariavel("@Mes2", cmbMes2.Text)
SubstituiVariavel("@Ano2", cmbAno2.Text)

If MsgBox("Confirma abertura do documento?", MsgBoxStyle.YesNo, "Microsoft Word - teste.txt") = MsgBoxResult.Yes Then

'torna o Word visivel

objWord.visible = True

'habilita o botão para fechar o word sem salvar

btnFechaWord.Enabled = True

Else

fechaWord()

End If

Catch ex As Exception

objWord.ActiveDocument.Close(False)

objWord.Quit()

objWord = Nothing

MsgBox(ex.Message)

End Try

End Sub
________________________________________________

Private Sub SubstituiVariavel(ByVal Achar As String, ByVal Substituir As String)

objWord.Selection.Find.ClearFormatting()

objWord.Selection.Find.Replacement.ClearFormatting ()

'procura a variável e substitui o valor

With objWord.Selection.Find

.Text = Achar.ToString

.Replacement.Text = Substituir.ToString

.Forward = True

.Format = False

.MatchCase = False

.MatchWholeWord = False

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

While .Execute = True

objWord.Selection.Select()

System.Windows.Forms.Clipboard.SetDataObject(Subst ituir)

objWord.Selection.Paste()

End While

End With

End Sub