No hay ningún documento abierto...

Tengo el siguiente código:
Private Sub cmdDoc_Click()
Dim strGrabaRef As String
'REM strGrabaRef = Me.txtRef & ".doc"
strGrabaRef = "UE 02 016.doc"
'_________________________________________________________________
'Grabamos la refencia en el la instancia de la plantilla.
Dim mobjWordApp As Word.Application
Set mobjWordApp = New Word.Application
'Activo el documento.
Documents(strGrabaRef).Activate
With mobjWordApp
.Visible = True
'Selecciona los marcadores del documento y los reemplaza
'con los valores de los campos del formulario.
.ActiveDocument.Bookmarks("DocumentoRef").Select
.Selection.Text = (CStr(Forms!PRUEBA!txtRef))
End With
End Sub
1) Lo que quiero hacer es grabar en el marcador DocumentoRef la referencia que tengo almacenada en un campo de texto (Me.txtRef).
2) Tengo varios documentos abiertos, entre ellos el que voy a usar para grabar la referencia.
3) La referencia coincide con el nombre del docuento (Ref. : UE 02 001=> UE 02 001.doc)
No puedo llevar a cabo esta operación porque me sale el siguiente error:
"Se ha producido el error '4248' en tiempo de ejecución:
El comando no está disponible porque no hay ningún documento abierto.
Línea que produce el error:
.ActiveDocument.Bookmarks("DocumentoRef").Select
¿Alguna sugerencia?
Gracias anticipadas.
Un saludo,
Kraken.

1 Respuesta

Respuesta
1
Definitivamente tu código está mal escrito. Prueba la versión correcta:
Private Sub cmdDoc_Click()
Dim mobjWordApp As Word.Application
Dim strGrabaRef As String
'se pone el archivo con todo y ruta en strGrabaRef
strGrabaRef = "C:\Mis documentos\" & Me.txtRef & ".doc"
'se crea una instancia de Microsoft Word
Set mobjWordApp = CreateObject("Word.Application")
'se abre el documento
mobjWordApp.Documents.Open strGrabaRef
'se muestra el documento
With mobjWordApp
.Visible = True
'Selecciona los marcadores del documento y los reemplaza
'con los valores de los campos del formulario.
.ActiveDocument.Bookmarks("DocumentoRef").Select
.Selection.Text = "¡¡Pon aquí el texto que quieras!!"
End With
End Sub
Revisa el código y te darás cuenta de tus errores. Opcionalmente si no vas a requerir que tu documento se quede abierto, puedes eliminar la sentencia de .Visible = true, y agregar la sentencia siguiente antes del end sub:
MobjWordApp. Quit wdSaveChanges
Esos serían los cambios que hay que hacer, no olvides calificarme.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas