powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Глюк вордового объекта
6 сообщений из 6, страница 1 из 1
Глюк вордового объекта
    #33540651
jim_di_griz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, подскажите, где надо копать, ато следствие зашло в тупик.
Имеем следующий кусок кода:
Код: plaintext
1.
2.
objTable.Cell(pos_g+ 1 , 1 ).Select
objWord.Selection.MoveDown wdLine, pos-pos_g- 1 , wdExtend
objWord.Selection.Cells.Merge


Программа создает документ Word, вставляет в него таблицу, заполняет таблицу, после чего пытается объединить несколько пустых строк в одну. Однако побытка бывает успешной, только если перед данным куском кода сделать:
Код: plaintext
objWord.Visible = True
, если-же этого не сделать, то на операции Merge выдается ошибка: "Данная команда недоступна".
Может ворд умеет сливать воедино только строки таблиц видимых документов?
...
Рейтинг: 0 / 0
Глюк вордового объекта
    #33540771
supeRRRguest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, то, что на экран не выводится, обрабатывается иначе

а зачем соединять пустые строки?
мож давай придумаем другой алгоритм?
...
Рейтинг: 0 / 0
Глюк вордового объекта
    #33540871
Jim diGriz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пустые строки надо соединять для того, чтобы после этого в образовавшуюся ячейку записать значение, общее для всех объединяемых строк. Другой алгоритм тут врятли покатит, мне-бы лучше понять, как они "иначе" обрабатываются? Может синтаксис другой требуется?
...
Рейтинг: 0 / 0
Глюк вордового объекта
    #33541225
Jim diGriz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вот если сделать перед проблемным куском так:
Код: plaintext
1.
objWord.Visible = True
objWord.Visible = False
то все прекрасно работает! Только вот появляющееся на миг окошко совсем не радует.
...
Рейтинг: 0 / 0
Глюк вордового объекта
    #33541318
Попробовал твой код, все нормально объединяет, даже если wdApp.Visible = False.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private wdApp As Word.Application

Sub MergeCells()

    Dim wdDoc As Word.Document
    Dim wdTbl As Word.Table
     
    Set wdApp = New Word.Application
    
    Set wdDoc = wdApp.Documents.Open(Filename:="D:\1\Test.doc")
    Set wdTbl = wdDoc.Tables( 1 )
    
    wdTbl.Cell( 1 ,  1 ).Select
    wdApp.Selection.MoveDown wdLine,  1 , wdExtend
    wdApp.Selection.Cells.Merge
End Sub

Sub AppVisible()

    wdApp.Visible = True
End Sub

Попробуй обойтись без Selection

Код: plaintext
1.
2.
3.
4.
    With wdTbl
        .Cell(Row:= 1 , Column:= 1 ).Merge _
            MergeTo:=.Cell(Row:= 2 , Column:= 1 )
        .Borders.Enable = True
    End With

У меня отрабатывают оба варианта с .Visible = False без единой ошибки. Что я делаю не так?
...
Рейтинг: 0 / 0
Глюк вордового объекта
    #33541431
Jim diGriz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эврика! Без Selection все заработало как надо!
Огромное спасибо Пользователю2!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Глюк вордового объекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]