powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как програмно создать новую строку в таблице?
7 сообщений из 7, страница 1 из 1
как програмно создать новую строку в таблице?
    #36235573
MaxBod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйе
Есть таблица в ворде, который через activX подключен к редактору Outlook 2007
Кодом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
For r =  1  To UBound(arFileM) -  1 
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:=arFileS(r)
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:=arFileM(r)
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:=arFileD(r)
Next r
Пытаюсь создать столько строк, сколько запесей содержится в arFileM,
Однако когда он выполняется, то возникает ошибка
Run-time error 4605
Метод или свойство недоступны, поскольку все или некоторые элементы не ссылаются на таблицу.
...
Рейтинг: 0 / 0
как програмно создать новую строку в таблице?
    #36235591
MaxBod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если без цикла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:="Файл  2"
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:="Иванов Иван"
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:="02.02.2009 18:35"
    objSel.MoveRight Unit:=wdCharacter, Count:= 2 
    objSel.MoveLeft Unit:=wdCharacter, Count:= 1 
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:="Файл 3"
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:="Петров Петр"
    objSel.MoveRight Unit:=wdCell
    objSel.TypeText Text:="03.03.2009 19:46"
То всё работает
...
Рейтинг: 0 / 0
как програмно создать новую строку в таблице?
    #36235610
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: MaxBod
> Пытаюсь создать столько строк, сколько запесей содержится в arFileM,
> Однако когда он выполняется, то возникает ошибка

может у тебя курсор выходит за рамки таблицы, потому, что таблица содержит меньше строк, чем записей в массиве?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как програмно создать новую строку в таблице?
    #36235635
MaxBod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да таблица содержит меньше строк чем в массиве,
Как программно их добавить?
Во втором варианте курсор тоже выходит за пределы, но строки создаются
...
Рейтинг: 0 / 0
как програмно создать новую строку в таблице?
    #36235663
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: MaxBod
> Да таблица содержит меньше строк чем в массиве,
> Как программно их добавить?
Из справки к ворду:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
'This example inserts a new row before the first row in the selection.
Sub AddARow()
    If Selection.Information(wdWithInTable) = True Then
        Selection.Rows.Add BeforeRow:=Selection.Rows( 1 )
    End If
End Sub'This example adds a row to the first table and then inserts the text Cell into this row.

Sub CountCells()
    Dim tblNew As Table
    Dim rowNew As Row
    Dim celTable As Cell
    Dim intCount As Integer

    intCount =  1 
    Set tblNew = ActiveDocument.Tables( 1 )
    Set rowNew = tblNew.Rows.Add(BeforeRow:=tblNew.Rows( 1 ))
    For Each celTable In rowNew.Cells
        celTable.Range.InsertAfter Text:="Cell " & intCount
        intCount = intCount +  1 
    Next celTable
End Sub
> Во втором варианте курсор тоже выходит за пределы, но строки создаются

Возможно из-за
Код: plaintext
1.
objSel.MoveRight Unit:=wdCharacter, Count:= 2 
    objSel.MoveLeft Unit:=wdCharacter, Count:= 1 
ворд обрабатывает их как сигнал к добавлению строки

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
как програмно создать новую строку в таблице?
    #36236016
MaxBod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, спаибо добовляет, только сверху, а надо снизу
Но не в этом главное он при добовлении форматирование не сохраняет
...
Рейтинг: 0 / 0
как програмно создать новую строку в таблице?
    #36236653
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: MaxBod
> Да, спаибо добовляет, только сверху, а надо снизу

А как переводится BeforeRow?

> Но не в этом главное он при добовлении форматирование не сохраняет

почему у меня сохраняет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 07.10.2009 user
'
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:= 2 , NumColumns:= _
         5 , DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables( 1 )
        If .Style <> "Объемная таблица 3" Then
            .Style = "Объемная таблица 3"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = True
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = True
    End With
    Dim t As Table
    Set t = ThisDocument.Tables( 1 )
    t.Rows.Add
End Sub


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / как програмно создать новую строку в таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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