Vb6 y word

Quiero con mi programa de vb6.0 arrancar una plantilla que tengo en microsoft word para rellenar los campos que yo quiera. He usado la correspondencia que lo he encontrado en internet, pero cuando ya voy a ejecutarlo con mi programa visual basic te pongo el código:
Option Explicit
Dim objWord As Word.Application
Private Sub cmdLlenaCarta_Click()
Set objWord = New Word.Application
    objWord.Visible = True
    'Pon la Ruta donde Guardaste la Carta
    objWord.Documents.Open App.Path & "\Carta.doc"
    objWord.Documents(1).Bookmarks("Destinatario").Range = txtDestinatario.Text
    objWord.Documents(1).Bookmarks("Esposa").Range = txtEsposa.Text
    objWord.Documents(1).Bookmarks("Fecha").Range = txtFecha.Text
End Sub
Me da problemas a la hora de enlazar el vb6 con el documento word. Abre el documento word pero cuando va a cargar me da el siguiente problema
Runtime -2147417851(80010105)
Automation error
Y me marca la siguiente linea el debug:
objWord.Documents.Open App.Path & "\Carta.doc"
¿La ruta esta comprobada que esta correctamente. Qué puede pasar?

1 Respuesta

Respuesta
1
Existe el archivo carta.doc ¿?
si claro en la misma ruta que el .exe
Proba esto
objWord.Documents.Open App.Path & "\Carta.doc"
Pone la ruta correcta sin el app. Path, haber si te tira el mismo error
Si me sigue saltando el mismo error.Ya llevo 3 días con ello esto no es normal...
Para descartar ¿pusiste la referencia de word?
Si la puse lo primero de todo
Pedí un poco de ayuda...
Por favor cambio según tu código
Primer programas :
Public Sub VERINDICEDELLIBRO()
On Error Resume Next
Set OBJWORD = GetObject(, "WORD.Application")
If Err.Number 0 Then
answ = MsgBox("abra WORD antes de iniciar", vbExclamation)
Err.Clear
Unload Me
Else
OBJWORD.Visible = True
MIINDICE = "C: miindice.doc"
If Dir(MIINDICE) = "" Then
MsgBox MIINDICE + " no existe!."
Else
OBJWORD.Visible = True
MIINDICE = "C: miindice.doc"
If Dir(MIINDICE) = "" Then
MsgBox MIINDICE + " no existe!."
Else
Set objindice = OBJWORD.Documents.Open(MIINDICE)
End If
End If
End Sub
segundo programas:
Dim OBJWORD As Object
Dim MIINDICE As String
Dim INDICE As Object
On Error Resume Next
Set OBJWORD = CreateObject("WORD.APPLICATION")
OBJWORD.Visible = True
If TXTsignatura.Text = frm3busqueda.lstencontrado.List(signatura) Then
INDICE = TXTsignatura.Text
(como logro pasa el txtsignatura a doc?)
Set objindice = OBJWORD.Documents.Open(INDICE)
End If
end sub
Ya conseguí que me abriera el documento word, pero ahora me ha surgido otro problema, cuando quiero rellenar campos del word que tengo como marcadores desde vb6 me da error y me falla en esta linea:
Obj_Word.Documents(1).Bookmarks("id").Range = "Pablo"
Me salta el siguiente error:
Runtime error: '6028'
¿No se puede eliminar el intervalo
cual puede ser el problema? Un saludo
Haber si sirve...
dim marcador as string
dim texto as string
marcador = "ID"
If wordApp.Documents(1).Bookmarks.Exists(marcador) = True Then ' Si existe el marcador
wordApp.Documents(1).Bookmarks(marcador).Select 'te posicionas en el marcador
wordApp.Selection.Font.Bold = True 'Negrita
texto = Text1.Text 'asignas valor
wordApp.Selection.TypeText Text:=texto 'escribes en el word
wordApp.Selection.Font.Bold = False 'no negrita
End If
Tendías que hacer por cada una de las marcas que tuvieras en el documento word.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas