Имя: Пароль:
1C
1С v8
Поиск в пределах таблицы ворд
,
0 sem4cnt
 
31.01.13
14:48
Добрый день!

Есть таблица ворд, считанная в переменную Таблица.
Вопрос: как найти в пределах данных этой таблицы оперделенный текст не перебирая все ячейки таблицы?

Перебрать могу, но это долго.
Должен быть какой-то метод поиска в пределах таблицы.
1 Maxus43
 
31.01.13
14:48
тип какой у Таблица ?
2 sem4cnt
 
31.01.13
14:50
(1) Фиг его знает какой тип. Там объект ОЛЕ возвращается, т.к. это таблица ворда.

Получается она вот так:

               Документ = MSWord.ActiveDocument();
                               
               // Переберем все таблицы
               Для Каждого Таблица из Документ.Tables Цикл
3 dk
 
31.01.13
14:51
Что значит "найти"?
Проверить его наличие/отсутствие или определить адрес (колонку + строку)?
4 Maxus43
 
31.01.13
14:51
я к тому что поиск без перебора возможен используя методы того объекта только
5 sem4cnt
 
31.01.13
14:52
(4) Я понимаю, но не знаю VBA настолько, чтобы сказать какой тип.
6 sem4cnt
 
31.01.13
14:53
(3) Найти это значит определить номер строки и колонки = где этот текст находится в этой таблице.
7 sem4cnt
 
31.01.13
15:12
Неужели это такая редкость?
8 sem4cnt
 
31.01.13
16:00
Господа, затрахался я с этой таблицей. Готов за вознаграждение уже принять помощь.
9 dk
 
31.01.13
16:08
дык тупо перебором - сам же так хотел
10 dk
 
31.01.13
16:17

Для Строка = 1 По таблица.ROWs.Count Цикл
  Для Колонка = 1 По таблица.Columns.Count Цикл
      Сообщить("-------");
      Сообщить("Строка: " + Строка);
      Сообщить("Колонка: " + Колонка);
      Сообщить("Значение: " + таблица.Cell(Строка,Колонка).Range.Text);
 
11 sem4cnt
 
31.01.13
16:18
Да переьором сделал. Но:

1) Во первых медленно. Бывают большие таблицы, которые вообще не нужно обрабатывать, т.к. нет вхождений моего шаблона, а на перебор тратится время.
2) Во ыторых, такие таблицы пользователи присылают, что непонятно как их обходить. Тупо переход по ячейкам не работает, т.к. есть всякие объединенные области и этих объединений великое множество.
12 sem4cnt
 
31.01.13
16:18
(10) Не все так просто. Такой перебор не работает для читай выше
13 dk
 
31.01.13
16:30
почему не работает-то?
или там таблица в таблице?
14 sem4cnt
 
31.01.13
16:32
(13) т.к. есть всякие объединенные области и этих объединений великое множество.
15 sem4cnt
 
31.01.13
16:33
+ таблица в таблице бывает (((
16 sem4cnt
 
31.01.13
17:29
Господа, дошел до такого:


                   ОбластьТаблицы = Таблица.Range();
                   Поиск = ОбластьТаблицы.Find;
                   Поиск.Text = "ТаблицаТоваров";
                   Поиск.Wrap = 1;
                   
                   
                   Пока Поиск.Execute() Цикл
                       ОК = 1;
                   КонецЦикла;

Но поиск происходит все равно по всему документу. Сдается мне я где-то рядом...
17 sem4cnt
 
31.01.13
17:29
С параметром wrap нужно как-то доколдовать. Кто знает?