Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
1592 / 559 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
1

For Each в таблице Ворда

28.06.2011, 15:06. Показов 4319. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
я думал, что эти строки
Visual Basic
1
2
3
4
5
6
7
For w = 1 To ActiveDocument.Tables.Count
Set oTbl = ActiveDocument.Tables(w)
Set oCell = oTbl.Range.Cells(1)
For Each oCell In ActiveDocument.Tables(w).Range.Cells
oCell.Range.Text = Trim(Left(oCell.Range.Text, Len(oCell.Range.Text) - 2))
Next
Next w
проходят по всем ячейкам таблицы, увы заглядывают только в 1 ячейку, как подправить???
Не люблю эти For Each
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2011, 15:06
Ответы с готовыми решениями:

Change - Изменение существует ли в таблице Ворда
Я выяснил, что Change - Изменение в Экселе существует, существует ли оно в таблице Ворда? Можно...

Как посчитать число выделенных ячеек в таблице Ворда?
Добрый день, уважаемые Форумчане. Вопрос... Есть таблица. Как посчитать выделенные ячейки? Или как...

Узнать номер строки в таблице Ворда, где расположен курсор
Здравствуйте, таблицы Ворда 'номер столбца, а также ячейки в таблице, в документе, где расположен...

тег ворда
<o : p> тег ворда валидатор на него ругается выдает ошибку как можно реализировать или исправить...

5
Заблокирован
28.06.2011, 17:14 2
Код:
Visual Basic
1
2
3
4
5
6
7
8
Sub P1()
Dim oTbl As Word.Table, oCell As Word.Cell
For Each oTbl In ActiveDocument.Tables
    For Each oCell In oTbl.Range.Cells
        oCell.Range.Text = Trim(Left(oCell.Range.Text, Len(oCell.Range.Text) - 2))
    Next oCell 
Next oTbl
End Sub
1
1592 / 559 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
28.06.2011, 20:01  [ТС] 3
одним словом с моего кода строку № 3 долой и всё ОК

Добавлено через 28 минут
голова к вечеру не варит, теперь не могу сообладать с все таблицы Word, только 1е ячейки таблиц
Busine2009, посмотрите пжл, подправьте

Visual Basic
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
'1
'все таблицы Word, только 1е ячейки таблиц
For y = 1 To ActiveDocument.Tables.Count
Set oTbl_Cell1 = ActiveDocument.Tables(y)
'эта строка указывает, что только 1 ячейка таблиц
Set oCell_Cell1 = oTbl_Cell1.Range.Cells(1)
For Each oCell_Cell1 In ActiveDocument.Tables(y).Range.Cells
oCell_Cell1.Range.Text = Trim(Left(oCell_Cell1.Range.Text, Len(oCell_Cell1.Range.Text) - 2))
Next
Next y
 
'2
'все таблицы Word, все ячейки таблиц
Dim oTblWord As Word.Table
Dim oCellWord As Word.Cell
 
For Each oTblWord In ActiveDocument.Tables
    For Each oCellWord In oTblWord.Range.Cells
        oCellWord.Range.Text = Trim(Left(oCellWord.Range.Text, Len(oCellWord.Range.Text) - 2))
    Next oCellWord
Next oTblWord
 
'3
'все ячейки таблицы ... Word
Dim oTbl As Word.Table
Dim oCell As Word.Cell
 
Set oTbl = ActiveDocument.Tables(1)
    For Each oCell In oTbl.Range.Cells
        oCell.Range.Text = Trim(Left(oCell.Range.Text, Len(oCell.Range.Text) - 2))
    Next oCell
0
Заблокирован
28.06.2011, 20:20 4
Все таблицы Word, только первые ячейки таблиц:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub P1()
'Все таблицы Word, только первые ячейки таблиц.
Dim i As Integer
Dim oTbl As Word.Table
For Each oTbl In ActiveDocument.Tables
    'эта строка указывает, что только 1 ячейка таблиц
    With oTbl.Range.Cells(1).Range
        .Text = Trim(Left(.Text, Len(.Text) - 2))
    End With
Next oTbl
End Sub

Все таблицы Word, все ячейки таблиц:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub P2()
'Все таблицы Word, все ячейки таблиц.
Dim oTblWord As Word.Table
Dim oCellWord As Word.Cell
For Each oTblWord In ActiveDocument.Tables
    For Each oCellWord In oTblWord.Range.Cells
        oCellWord.Range.Text = Trim(Left(oCellWord.Range.Text, Len(oCellWord.Range.Text) - 2))
    Next oCellWord
Next oTblWord
End Sub

Одна таблица Word, все ячейки:
Visual Basic
1
2
3
4
5
6
7
8
9
Sub P3()
'Все ячейки для одной таблицы.
Dim oTbl As Word.Table
Dim oCell As Word.Cell
Set oTbl = ActiveDocument.Tables(1)
For Each oCell In oTbl.Range.Cells
    oCell.Range.Text = Trim(Left(oCell.Range.Text, Len(oCell.Range.Text) - 2))
Next oCell
End Sub
1
1592 / 559 / 74
Регистрация: 10.04.2009
Сообщений: 9,106
28.06.2011, 20:25  [ТС] 5
и чтобы счасть было полным как будет таблица 1, только ячейки 1 строки??
Спасибо
0
Заблокирован
28.06.2011, 20:52 6
Первая таблица в активном документе, первая строка:
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub P3()
'Первая таблица в активном документе, первая строка.
'Будет ошибка, если ячейки будут объединены.
Dim oRow As Word.Row
Dim oCell As Word.Cell
Set oRow = ActiveDocument.Tables(1).Rows(1)
For Each oCell In oRow.Cells
    oCell.Range.Text = Trim(Left(oCell.Range.Text, Len(oCell.Range.Text) - 2))
Next oCell
End Sub


В этом случае сложней ориентироваться, т.к. ошибка возникнет, если ячейки объединены. Надо конкретную ситуация рассматривать.
1
28.06.2011, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2011, 20:52
Помогаю со студенческими работами здесь

Сохранения ворда!
Как сохранить документ ворд под именем через Edit... У меня Edit_ом будет фамилия и нужно чтоб ворд...

Заговор ворда
помните такой прикол? наберите в программе строку "правоспособность-способность лица иметь...

Из ворда - в лотус
Коллеги, накидайте советов по наиболее оптимальной связке MS Word и лотуса. На тех машинах, где...

текст из ворда
в какой компонент можно скопировать текст из ворда, причем в тексте присутствуют формулы MS...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru