Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 17.02.2011, 03:06   #1
breeve
Новичок
Джуниор
 
Регистрация: 17.02.2011
Сообщений: 4
По умолчанию Как достать информацию из таблицы

Есть документ состоящий из одной страницы, в начале есть немного текста и в конце, а по середине таблица. Как достать информацию из таблицы? Есть ли метод аля Text который возвращает текст из ячейки таблицы? Заранее благодарен за помощь.

ПС Гуглил нашел много кода с помощью которого можно создавать таблицу, а как ее просмотреть так и не нашел.
breeve вне форума Ответить с цитированием
Старый 17.02.2011, 04:17   #2
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию

Плохо гулили...
Вывод текста из ячейки 2-й колонки 5-й строки 1-й таблицы активного документа:
Код:
Msgbox ActiveDocument.Tables(1).Cell(5,2).Range.Text
Учтите, что текст в конце будет содержать признак конца ячейки.
Aent вне форума Ответить с цитированием
Старый 17.02.2011, 11:34   #3
breeve
Новичок
Джуниор
 
Регистрация: 17.02.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Aent Посмотреть сообщение
Плохо гулили...
Вывод текста из ячейки 2-й колонки 5-й строки 1-й таблицы активного документа
Учтите, что текст в конце будет содержать признак конца ячейки.
Спасибо, действительно в конце текста здоровенная точка.

А чтобы вытащить все данные из таблицы нужно по ячеечно это делать или есть какойто метод чтобы за раз).
Думаю надо двигаться в сторону циклов. Но вот только проблема такая возникла. Таблица у меня не простая, т.е НЕ в каждом столбце одинаковое кол-во строк. Как тогда мне получить все ячейки?
breeve вне форума Ответить с цитированием
Старый 17.02.2011, 12:17   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,049
По умолчанию

-выделите кусок таблицы и скопируйте в новый документ
-инфу можете удалить или заменить на ввв ааа ррр 111
-выложите полученный образец
shanemac51 вне форума Ответить с цитированием
Старый 17.02.2011, 20:18   #5
breeve
Новичок
Джуниор
 
Регистрация: 17.02.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
-выделите кусок таблицы и скопируйте в новый документ
-инфу можете удалить или заменить на ввв ааа ррр 111
-выложите полученный образец
Вообще если быть точнее, то я пишу программу на сях, и мне нужно достать информацию из таблицы ворд чтобы потом ее можно было обрабатывать. Информацию я могу достать лишь в текстовом или цифровом видах.
И из всего VBA мне нужны только методы и свойства библиотеки ворд.
Смотрел на мсдн документацию но толком ничего не понял.
Привожу пример таблицы. 1-ая цифра - столбец, 2-ая строка. Где пунктир там ничего нет, и вместо цифр текст - это для ясности. Узнал что оказывается если ссылаться на 2-ую строку в 1-м столбце то он выдаст ошибку. И чтобы взять 2-ую ячейку нужно ссылаться к 3-ей строке. Проблема заключается в том что как найти сколько строк 2-го столбца пролегают напротив 1-ой ячейки 1-го столбца. Можно сделать так, перейти на след ячейку вниз (1-ый столбец) и далее узнать какая это строка. Но не метод перехода, не получение номера текуще строки не знаю.


breeve вне форума Ответить с цитированием
Старый 17.02.2011, 20:24   #6
breeve
Новичок
Джуниор
 
Регистрация: 17.02.2011
Сообщений: 4
По умолчанию

Цитата:
Сообщение от breeve Посмотреть сообщение
или есть какойто метод чтобы за раз).
Это я имел ввиду метод, чтобы вывод его был примерно таков:
"1 1*1 2*1 3/2 1*...*9 2*9 3" где звездочка это переход на след ячейку в этой строке, а слеш на след строку.
breeve вне форума Ответить с цитированием
Старый 17.02.2011, 20:32   #7
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 2,336
По умолчанию

cursor_row = oDocument.Windows(1).Selection.Rows .First.Index 'номер строки в таблице, в документе, где расположен курсор
или
cursor_row = ActiveDocument.Selection.Rows.First .Index
Ципихович Эндрю вне форума Ответить с цитированием
Старый 17.02.2011, 20:36   #8
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 2,336
По умолчанию

Думаю надо двигаться в сторону циклов. Но вот только проблема такая возникла. Таблица у меня не простая, т.е НЕ в каждом столбце одинаковое кол-во строк. Как тогда мне получить все ячейки


Для этого есть цикл Фор еах - До тех пор или сначала узнать сколько, а затем делать цикл
Ципихович Эндрю вне форума Ответить с цитированием
Старый 18.02.2011, 06:38   #9
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,049
По умолчанию

вывод из нерегулярной таблицы
Код:
Sub m110218_0521()
Dim c1 As Cell, j1
Word.ActiveDocument.Tables(1).Select
With Selection
For Each c1 In .Cells
j1 = Len("" & c1.Range.Text)
If j1 > 2 Then
If Mid(c1.Range.Text, j1, 1) < Chr(32) Then
j1 = j1 - 1
End If
If Mid(c1.Range.Text, j1, 1) < Chr(32) Then
j1 = j1 - 1
End If
Debug.Print c1.ColumnIndex, c1.RowIndex, Mid(c1.Range.Text, 1, j1)
End If
Next c1
End With
End Sub
shanemac51 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как "достать" информацию с диска? Syslik Помощь студентам 6 31.01.2011 12:10
Как из большой таблицы получить информацию на отдельном листе Aspens Microsoft Office Excel 7 20.12.2010 01:26
Надо достать информацию из проги, есть умельцы? видимо DOS Azhimix Помощь студентам 0 08.10.2010 22:57
Подскажите где достать полезную информацию Nura87 Свободное общение 33 05.08.2010 09:15
Как при нажатии одной кнопки занести информацию в 2 таблицы k0libry Microsoft Office Excel 4 31.01.2010 23:58


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS