Visual Basic - Macro Word-Excel error compilado no en diseño

Life is soft - evento anual de software empresarial
 
Vista:

Macro Word-Excel error compilado no en diseño

Publicado por Tony (1 intervención) el 27/05/2010 20:51:13
Saludos a todos los foreros!

Estoy teniendo un problema bastante extraño que nunca había experimentado.

Tengo un programa que construye un documento de Word con gráficas insertadas de excel utilizando macros a partir de los datos obtenidos de una BD en SQL Server 2005.

El error es bien particular pues mientras estoy programando (en tiempo de diseño) se ejecuta correctamente, todos los datos están en su sitio y el documento se genera sin problemas, el error surge cuando compilo y ejecuto el programa abriendo el .exe

Ahí comienza mi pesadilla pues se detiene la ejecución en la creación de una tabla de word y emite un error del tipo "Sistema.exe ha detectado un problema y debe cerrarse. Informe a Microsoft de este problema"

Acá coloco un extracto del código que es donde se produce el error a ver ayuda a detectar la falla.

El error se produce justo al ejecutar la línea ".Selection.TypeText Text:=Matriz(Vector(i)).Gerencia"

De hecho si elimino esta línea el programa se ejecuta correctamente. Desde luego, debo encontrar una forma de ejecutar esta línea o un equivalente sin que produzca errores.

Gracias de antemano por el apoyo.

Type IPInd
Valor As Single
Valido As Boolean
Operador As String * 2
Titulo As String
Indicador As String * 4
Gerencia As String * 9
Objetivo As String * 5
VActual As Single
Contador As Integer
End Type

Private Sub BuildTable1(Rows As Integer, Vector As Variant, Titulo As String, Matriz() As IPInd)
On Error Resume Next
Dim lm As Integer
lm = UBound(Vector)
With objWord
.Selection.TypeText Text:=Chr(13) & Chr(13) & Titulo & Chr(13) & Chr(13)
.ActiveDocument.Tables.Add Range:=.Selection.Range, NumRows:=Rows, NumColumns:= _
3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitContent
.Selection.Font.Bold = wdToggle
.ActiveDocument.Tables(varTable).Cell(1, 1).Range.InsertAfter "Indicador"
.Selection.MoveRight Unit:=wdCharacter, Count:=10
.Selection.Font.Bold = wdToggle
.ActiveDocument.Tables(varTable).Cell(1, 2).Range.InsertAfter "Objetivo"
.Selection.MoveRight Unit:=wdCharacter, Count:=9
.Selection.Font.Bold = wdToggle
.ActiveDocument.Tables(varTable).Cell(1, 3).Range.InsertAfter _
"Gerencia Resp."
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.MoveRight Unit:=wdCharacter, Count:=-2
For i = 0 To lm
.Selection.TypeText Text:=Matriz(Vector(i)).Titulo
.Selection.MoveRight Unit:=wdCharacter, Count:=1
.Selection.TypeText Text:=Matriz(Vector(i)).Operador & Matriz(Vector(i)).Valor & Matriz(Vector(i)).Objetivo
.Selection.MoveRight Unit:=wdCharacter, Count:=1
.Selection.TypeText Text:=Matriz(Vector(i)).Gerencia
.Selection.MoveDown Unit:=wdLine, Count:=1
.Selection.MoveRight Unit:=wdCharacter, Count:=-2
Next
.Selection.MoveDown Unit:=wdLine, Count:=10
varTable = varTable + 1
End With
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder