powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как создать таблицу в Word 2007 программно?
12 сообщений из 12, страница 1 из 1
Как создать таблицу в Word 2007 программно?
    #36697572
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток, уважаемые!

Создаю документы на основе существующего. Необходимо в каждом новом документе формировать таблицу с переменным значением строк, которое будет браться из запроса. Пишу так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
    Set ObjWord = New Word.Application
    PathDOT = "C:"

    rs.MoveFirst
    intRows =  0 
    Do While Not rs.EOF
        intRows = intRows +  1 
        rs.MoveNext
    Loop
    rs.MoveFirst
    
    arrayRows = rs.GetRows(intRows)
    '
    Dim tblList As Table

    For intLoopRow =  0  To intRows -  1 
        ObjWord.Documents.Add PathDOT & "\" & "Распоряжение.doc"
        ObjWord.Visible = True
 
        Set tblList = ActiveDocument.Tables.Add(Selection.Range, NumRows:= 1 , NumColumns:= 4 )
        With Selection.Tables( 1 )
            If .Style <> "Сетка таблицы" Then
                .Style = "Сетка таблицы"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = False
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = False
            .ApplyStyleRowBands = True
            .ApplyStyleColumnBands = False
        End With
    Next

    Set ObjWord = Nothing
    rs.Close
Программа вставляет все таблицы в документ-шаблон. Мне надо, чтобы вставляла в созданный на основе шаблона. Как сделать?
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697640
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim MyDoc As Document
...
...
Set MyDoc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
...
...
Set tblList = MyDoc.Tables.Add(Selection.Range, NumRows:= 1 , NumColumns:= 4 )
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697691
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

так, во-первых, таблица не вставляется, во-вторых на втором документе появляется ошибка:
Код: plaintext
Method 'Add' of object 'Tables' failed
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697701
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsyна втором документе
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim MyDoc As Document
...
...
Set MyDoc = Nothing
Set MyDoc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
...
...
Set tblList = MyDoc.Tables.Add(Selection.Range, NumRows:= 1 , NumColumns:= 4 )

Ваш код для вставки таблицы я не менял - смотрите сами причину. Но меня смущает одновременное использование обычных и именованных параметров.
Далее, вы там используете
Код: plaintext
Selection.Range
однако, не вижу, где вы его программируете.
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697715
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Спасибо, буду смотреть
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697720
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

не помогло, всё равно вылетает с той же ошибкой
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697727
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsyне помогло, всё равно вылетает с той же ошибкой
Не помогло что?
Я дал три совета, опубликуйте получившийся код
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697745
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
    Set ObjWord = New Word.Application
    PathDOT = "C:"
    Dim Doc As Document
    
    Dim tblList As Table
    
    For intLoopRow =  0  To intRows -  1 
        ObjWord.Documents.Add PathDOT & "\" & "Распоряжение.doc"
        ObjWord.Visible = True
        Set Doc = Nothing
        Set Doc = ObjWord.Documents.Add(PathDOT & "\" & "Распоряжение.doc")
        Selection.EndKey Unit:=wdStory
        Set tblList = Doc.Tables.Add(Selection.Range, NumRows:= 1 , NumColumns:= 4 )
        With tblList
            If .Style <> "Сетка таблицы" Then
                .Style = "Сетка таблицы"
            End If
            .ApplyStyleHeadingRows = True
            .ApplyStyleLastRow = False
            .ApplyStyleFirstColumn = True
            .ApplyStyleLastColumn = False
            .ApplyStyleRowBands = True
            .ApplyStyleColumnBands = False
        End With
    Next

    Set ObjWord = Nothing
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697755
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторюсь, меня смущает использование объекта Selection. Скорее всего, Selection у вас находится в одном документе, а Tables.Add теперь в другом - вот и возникает ошибка.
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697758
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProДалее, вы там используете
Код: plaintext
Selection.Range
однако, не вижу, где вы его программируете.
В справке есть такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub NewTable()
    Dim docNew As Document
    Dim tblNew As Table
    Dim intX As Integer
    Dim intY As Integer

    Set docNew = Documents.Add
    Set tblNew = docNew.Tables.Add(Selection.Range,  3 ,  5 )
    With tblNew
    For intX =  1  To  3 
        For intY =  1  To  5 
            .Cell(intX, intY).Range.InsertAfter "Cell: R" & intX & ", C" & intY
        Next intY
    Next intX
    .Columns.AutoFit
    End With
End Sub
тут тоже нигде предварительно не программировалось
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697766
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Katsy
В справке есть такой код:
тут тоже нигде предварительно не программировалось
Однако, это в пределах одного документа, а у вас - разные
...
Рейтинг: 0 / 0
Как создать таблицу в Word 2007 программно?
    #36697771
Katsy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

да, спасибо!!!
Код: plaintext
1.
2.
        Doc.ActiveWindow.Selection.EndKey Unit:=wdStory
        Set tblList = Doc.Tables.Add(Doc.ActiveWindow.Selection.Range, NumRows:= 1 , NumColumns:= 4 )
так работает
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как создать таблицу в Word 2007 программно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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