Application.Visible влияет на результат выгрузки данных из Axapta

При выгрузке данных с sql server в word через axapta application.visible влияет на то, будут работать макросы для форматирования итоговой таблицы или нет. Если ставлю visible=true, то все правильно, если false, то падает на одной ничем не примечательной строке макроса, которая форматирует ширину одной из колонок. В связи с этим вопрос. На что влияет это свойство на глубинном уровне? Благодарю вас!

Sub mergeTableCells()

Set tTable = ActiveDocument.Tables
i = 1

tTable(1).Rows(3).Cells(3).Select
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

tTable(2).Rows(2).Cells(3).Select
Selection.MoveRight Unit:=wdCharacter, Count:=3, Extend:=wdExtend
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

For Each rw In tTable
    v = tTable(i)
       
    If (i = 1) Then
        v.Columns(1).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(2).SetWidth ColumnWidth:=300, RulerStyle:=wdAdjustNone
        v.Columns(3).SetWidth ColumnWidth:=180, RulerStyle:=wdAdjustNone
    End If
    
    If (i = 2) Then
        v.Columns(1).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(2).SetWidth ColumnWidth:=300, RulerStyle:=wdAdjustNone
        v.Columns(3).SetWidth ColumnWidth:=60, RulerStyle:=wdAdjustNone
        v.Columns(4).SetWidth ColumnWidth:=60, RulerStyle:=wdAdjustNone
     '   v.Columns(5).SetWidth ColumnWidth:=60, RulerStyle:=wdAdjustNone
    End If
    
    If (i = 3) Then
        v.Columns(1).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(2).SetWidth ColumnWidth:=300, RulerStyle:=wdAdjustNone
        v.Columns(3).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(4).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(5).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(6).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
      '  v.Columns(7).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
      '  v.Columns(8).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
    End If
    
    If (i = 4) Then
        v.Columns(1).SetWidth ColumnWidth:=30, RulerStyle:=wdAdjustNone
        v.Columns(2).SetWidth ColumnWidth:=300, RulerStyle:=wdAdjustNone
        v.Columns(3).SetWidth ColumnWidth:=60, RulerStyle:=wdAdjustNone
        v.Columns(4).SetWidth ColumnWidth:=60, RulerStyle:=wdAdjustNone
       ' v.Columns(5).SetWidth ColumnWidth:=60, RulerStyle:=wdAdjustNone
    End If
    
    i = i + 1
Next

tTable(2).Rows(2).Cells(1) = "3"
tTable(3).Rows(2).Cells(1) = ""
tTable(4).Rows(2).Cells(1) = "16"
tTable(4).Rows(3).Cells(1) = "17"
tTable(4).Rows(4).Cells(1) = "18"

tTable(1).Select
Selection.Cut
tTable(1).Select
Selection.Paste

tTable(1).Select
Selection.Cut
tTable(1).Select
Selection.Paste

tTable(1).Select
Selection.Cut
tTable(1).Select
Selection.Paste
 
' удаление лишних заголовков
Set Rows = tTable(1).Rows
For Each rw In Rows
    str1 = rw.Cells(1)
    str3 = rw.Cells(3)
    If (Asc(Left(str1, 1)) = 13 And Asc(Left(str3, 1)) = 13) Then ' ищем строку которую хотим удалить
        rw.Select
        Selection.Rows.Delete
    End If
Next

' форматирование
tTable(1).Rows(4).Cells(1).Select
Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
Selection.Cells.Merge

Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.Cells.Merge
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

End Sub


Ответы (0 шт):