Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Глюк вордового объекта / 6 сообщений из 6, страница 1 из 1
13.02.2006, 13:13:21
    #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
13.02.2006, 13:39:49
    #33540771
supeRRRguest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюк вордового объекта
ну да, то, что на экран не выводится, обрабатывается иначе

а зачем соединять пустые строки?
мож давай придумаем другой алгоритм?
...
Рейтинг: 0 / 0
13.02.2006, 14:01:29
    #33540871
Jim diGriz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюк вордового объекта
Пустые строки надо соединять для того, чтобы после этого в образовавшуюся ячейку записать значение, общее для всех объединяемых строк. Другой алгоритм тут врятли покатит, мне-бы лучше понять, как они "иначе" обрабатываются? Может синтаксис другой требуется?
...
Рейтинг: 0 / 0
13.02.2006, 15:41:05
    #33541225
Jim diGriz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюк вордового объекта
А вот если сделать перед проблемным куском так:
Код: plaintext
1.
objWord.Visible = True
objWord.Visible = False
то все прекрасно работает! Только вот появляющееся на миг окошко совсем не радует.
...
Рейтинг: 0 / 0
13.02.2006, 16:08:00
    #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
13.02.2006, 16:39:29
    #33541431
Jim diGriz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Глюк вордового объекта
Эврика! Без Selection все заработало как надо!
Огромное спасибо Пользователю2!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Глюк вордового объекта / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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