Тема: Макросы.Работа с таблицей в Worde
Ребята,нужна помощь!!!!У меня есть текстовый документ.В нем есть таблица,в которую мне нужно попасть и пройтись по всем столбцам и строчкам.Как мне это сделать?Можете напискать текст программы?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Ребята,нужна помощь!!!!У меня есть текстовый документ.В нем есть таблица,в которую мне нужно попасть и пройтись по всем столбцам и строчкам.Как мне это сделать?Можете напискать текст программы?
и толку от того, что вы пройдетесь по всем ячейкам? Нужно ведь еще какие-то действия сделать с этими ячейками, как я понимаю?
да но прежде мне нужно попасть в таблицу....я не представляю как это сделать...ну и пробежаться по строкам и столбцам....что нужно дальше я уже спрошу потом
Саша, дело в том, что вы представляете себе решение своей задачи как «пробежаться по строкам и столбцам», а на самом деле оно может быть совершенно иным. Например, можно воспользоваться поиском в таблице.
Ну да ладно, пробежаться можно так:
Sub RunThroughTable()
Dim i As Long, j As Long 'Счётчики строк и столбцов
Dim oTbl As Table 'Таблица, в которой будем перебирать ячейки
Set oTbl = ActiveDocument.Tables(1) 'Первая таблица в документе
For i = 1 To oTbl.Rows.Count 'Перебор всех строк
For j = 1 To oTbl.Columns.Count 'Перебор всех столбцов
Debug.Print "Строка " & i & "; Столбец " & j & ". Текст ячейки: " & oTbl.Cell(i, j).Range.Text
Next j
Next i
End Sub
Эта процедура «пробежится» по всем ячейкам первой таблицы в активном документе, перебирая строки и столбцы, и выведет номер строки, столбца и содержимое соответствующей ячейки. Вывод производится в Immediate Window, которое вызывается по Ctrl+G. Процедура не будет работать если в таблице есть объединённые ячейки. Если вы хотите «пробежаться» по таблице, в которой находится курсор, тогда замените ActiveDocument на Selection.
Второй способ перебора ячеек. Более быстрый и будет работать вне зависимости от наличия объединённых ячеек
Sub RunThroughTable2()
Dim oCell As Cell 'Переменная, которой будем перебирать ячейки
Dim oTbl As Table 'Таблица, в которой будем перебирать ячейки
Set oTbl = ActiveDocument.Tables(1) 'Первая таблица в документе
Set oCell = oTbl.Range.Cells(1) 'Первая ячейка в таблице
Do Until oCell Is Nothing
'Вывод информации о ячейке или любые другие действия
Debug.Print "Строка " & oCell.RowIndex & "; Столбец " & oCell.ColumnIndex & ". Текст ячейки: " & oCell.Range.Text
Set oCell = oCell.Next 'Переход к следующей ячейке
Loop
End Sub
Предполагается, что мы имеем дело с обычной таблицей, не имеющей вложенных таблиц.
Тему переношу в раздел «Автоматизация»
Спасибо большое
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться