powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать программно значение ячеек этой таблицы
9 сообщений из 9, страница 1 из 1
Как узнать программно значение ячеек этой таблицы
    #33116250
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите прикрепленный файл. В документ Word вставлен колонтитул, в него вставлена таблица. Как узнать программно значение ячеек этой таблицы, хотя бы значение одной с надписью "Г.3.000.0855/ГТП-0532.505.007.2-ЭОО.С" Ну очень нужно...
...
Рейтинг: 0 / 0
Как узнать программно значение ячеек этой таблицы
    #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
Как узнать программно значение ячеек этой таблицы
    #33117891
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как обратиться конкретно к нужной таблицы, скажем имя этой таблицы Таблица3 0? А то у меня есть уже на листе несколько таблиц и он (цикл) начинает перебирать их все....
...
Рейтинг: 0 / 0
Как узнать программно значение ячеек этой таблицы
    #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
Как узнать программно значение ячеек этой таблицы
    #33118035
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, если вставлять весь этот код в модуль документа, то все нормально работает, а если вставлять в модуль шаблона Normal, то ругается на строчку shp.Select и выдаёт сообщение: Данный компонент в этом представлении недоступен. В чем тут дело?
...
Рейтинг: 0 / 0
Как узнать программно значение ячеек этой таблицы
    #33118065
SergeyS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
См. ирикрепленный файл. Понял почему. У меня на листе таблица, она заполняет все свободное пространство страницы между колонтитулами. При копировании таблицы из колонтитула и вставки ее в тело документа, она вставляет таблицу в одну из ячеек таблицы (которая заполняет все пространство). Как это можно побороть?
...
Рейтинг: 0 / 0
Как узнать программно значение ячеек этой таблицы
    #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
Как узнать программно значение ячеек этой таблицы
    #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
Как узнать программно значение ячеек этой таблицы
    #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
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как узнать программно значение ячеек этой таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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