|   |   | 
| 
 | Поиск в пределах таблицы ворд | ☑ | ||
|---|---|---|---|---|
| 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 | 
  | |||
| 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 нужно как-то доколдовать. Кто знает?     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |