Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать программно значение ячеек этой таблицы / 9 сообщений из 9, страница 1 из 1
14.06.2005, 17:27:16
    #33116250
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать программно значение ячеек этой таблицы
Смотрите прикрепленный файл. В документ Word вставлен колонтитул, в него вставлена таблица. Как узнать программно значение ячеек этой таблицы, хотя бы значение одной с надписью "Г.3.000.0855/ГТП-0532.505.007.2-ЭОО.С" Ну очень нужно...
...
Рейтинг: 0 / 0
15.06.2005, 11:30:36
    #33116977
Как узнать программно значение ячеек этой таблицы
Документ --> Нижний колонтитул --> Надпись --> Таблица --> Ячейки.

Надо перебирать все объекты в этих коллекциях.

Как перебрать все таблицы внедренные в надпись я не знаю.

Я сделал с временным копированием таблицы в тело документа.

Код: 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.
Sub sub2()
    Dim docActive As Document
    Dim tbl As Table
    Dim cel As Cell
    Dim str As String
    Dim shp As Shape
    
    Set docActive = ActiveDocument
    
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    
    For Each shp In ActiveDocument.Sections( 1 ).Footers(wdHeaderFooterPrimary).Shapes
        shp.Select
        Selection.WholeStory
        Selection.Copy
        ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
        Selection.Paste
        'Debug.Print shp.Name
    Next shp

    For Each tbl In docActive.Tables
        For Each cel In tbl.Range.Cells
            strText = Left(cel.Range.Text, Len(cel.Range.Text) -  2 )
            If Len(strText) >  0  Then
                Debug.Print strText
            End If
        Next cel
    Next tbl
    
    For Each tbl In docActive.Tables
        tbl.Delete
    Next tbl
End Sub

Результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
Г. 3 . 000 . 0855 /ГТП- 0532 . 505 . 007 . 2 -ЭОО.С
Изм.
Кол.уч.
Лист
№ док.
Подпись
Дата
...
Рейтинг: 0 / 0
15.06.2005, 16:46:54
    #33117891
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать программно значение ячеек этой таблицы
А как обратиться конкретно к нужной таблицы, скажем имя этой таблицы Таблица3 0? А то у меня есть уже на листе несколько таблиц и он (цикл) начинает перебирать их все....
...
Рейтинг: 0 / 0
15.06.2005, 17:01:20
    #33117929
Как узнать программно значение ячеек этой таблицы
И как ты присваиваешь имя таблице? У объекта Table нет такого свойства. Может в Office > 2000 появилось.

А по индексу вот так:

Код: plaintext
1.
2.
3.
4.
5.
    For Each cel In docActive.Tables( 2 ).Range.Cells
            strText = Left(cel.Range.Text, Len(cel.Range.Text) -  2 )
            If Len(strText) >  0  Then
                Debug.Print strText
            End If
    Next cel

2 -- вторая таблице в документе.
...
Рейтинг: 0 / 0
15.06.2005, 17:41:02
    #33118035
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать программно значение ячеек этой таблицы
Блин, если вставлять весь этот код в модуль документа, то все нормально работает, а если вставлять в модуль шаблона Normal, то ругается на строчку shp.Select и выдаёт сообщение: Данный компонент в этом представлении недоступен. В чем тут дело?
...
Рейтинг: 0 / 0
15.06.2005, 17:55:13
    #33118065
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать программно значение ячеек этой таблицы
См. ирикрепленный файл. Понял почему. У меня на листе таблица, она заполняет все свободное пространство страницы между колонтитулами. При копировании таблицы из колонтитула и вставки ее в тело документа, она вставляет таблицу в одну из ячеек таблицы (которая заполняет все пространство). Как это можно побороть?
...
Рейтинг: 0 / 0
16.06.2005, 14:49:57
    #33119702
SergeyS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как узнать программно значение ячеек этой таблицы
Получилось.... что бы узнать значение ячейки в колонтитуле:
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter

Selection.Tables(1).Cell(1, 7).Select
strText = Selection.Tables(1).Cell(1, 7)
strText = Left(strText, Len(strText) - 2)
msgbox(strText)
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
...
Рейтинг: 0 / 0
16.06.2005, 15:07:48
    #33119781
Как узнать программно значение ячеек этой таблицы
SergeySПолучилось.... что бы узнать значение ячейки в колонтитуле:
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter

Selection.Tables(1).Cell(1, 7).Select
strText = Selection.Tables(1).Cell(1, 7)
strText = Left(strText, Len(strText) - 2)
msgbox(strText)
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

Это с обращением к объкту Shape или без? Без работать не будет.
...
Рейтинг: 0 / 0
16.06.2005, 15:12:53
    #33119798
Как узнать программно значение ячеек этой таблицы
Вот так работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter

ActiveDocument.Sections( 1 ).Footers(wdHeaderFooterPrimary).Shapes( 1 ).Select
Selection.Tables( 1 ).Cell( 1 ,  7 ).Select
strText = Selection.Tables( 1 ).Cell( 1 ,  7 )
strText = Left(strText, Len(strText) -  2 )
MsgBox (strText)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать программно значение ячеек этой таблицы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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