Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2009, 22:46   #11
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Идефикс

А нельзя ли тем же файнридером, например, из дока (doc) делать картинку, а её в свою очередь читать как текст (txt)? (Сам не пробовал, но видел "красиво" выровненные таблицы ПДД и прочих законов, — неужели их посимвольно ровняли 10 тысяч секретарш?!)


Алекс, комментарии здесь надо выделять и справа — иначе видишь, сколько зелени!

(А также есть биби-тэг [vb][/vb], но не знаю, как он тут...)

Последний раз редактировалось Sasha_Smirnov; 12.02.2009 в 22:58.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 13.02.2009, 05:55   #12
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Вот что значит правильно сформулировать задачу! Разбить таблицы — это не в текст их конвертить.
Спасибо за макрос, опробую.
Но разбивка таблицы, пол задачи. Когда я разбивал таблицы, потом другие люди в той кривой проге для коей предназначались документы их правили. Соединяли строки вместе, удаляя лишние линии псевдографики.

Ну крайний случай найти мифическую програмку да разобрать на части)

PS>насчёт правки макроса - не особо шарю в VBA, что можно почитать для понимания основ?
shadowbeast вне форума Ответить с цитированием
Старый 13.02.2009, 09:46   #13
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
…PS>насчёт правки макроса - не особо шарю в VBA, что можно почитать для понимания основ?
http://word.mvps.org/FAQs/MacrosVBA/
http://www.citforum.ru/programming/vb/vba_word/

Добавлено позже
Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
…(А также есть биби-тэг , но не знаю, как он тут...)
Здесь он не поддерживается . Видишь он даже не распознался, а напечатался как текст, хотя для того, чтобы показать в посте тег, который распознается, нужно использовать тег [noparse][/noparse]. Странно, но VB не подсвечивается вообще. Эту тему я поднимал, но, думаю, что до введения нового движка на форуме ничего не изменится
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.02.2009 в 10:30.
viter.alex вне форума Ответить с цитированием
Старый 13.02.2009, 15:59   #14
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Макрос не сработал, почему-то.
Взял сходу пустую табличку. 5 стобцов, 15 строк. В паре из них объединил ячейки в строках.
Но макрос никак не прореагировал. Всё как был, так и осталось.

+ натолкнулся на таблицу в которой оказались объединены ячейки в столбцах. Это как-то можно вставить в макрос, дабы разбивалось?
shadowbeast вне форума Ответить с цитированием
Старый 13.02.2009, 16:08   #15
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вот так звучала задача.
Цитата:
Сообщение от shadowbeast Посмотреть сообщение
…Я думал о возможности сравнения. Если в строке большее или меньшее количество ячеек чем в предыдущей - её надо разбить. Но не знаю, как это реализовать. И наверное это бы было прекрасно применимо к огромному документу..
Макрос это делает, т.е. разбивает таблицу, если количество ячеек в соседних строках разное.

Ты говоришь про объединенные ячейки — это несколько иное. Нужно писать по-другому.

Добавлено позже
Если речь идет об объединенных ячейках (Merge), тогда нужно как-то определять, что в строке есть объединеные ячейки и разбивать их
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.02.2009 в 16:24.
viter.alex вне форума Ответить с цитированием
Старый 13.02.2009, 16:28   #16
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

А как иначе можно получить разное количество ячеек в строках одной таблицы? Разве есть ещё способ кроме объединения?

Я потому и сказл про сравнения, что вручную так и делал) Смотрел в таблицу. Вижу- количество ячеек разное. Разбиваю хоткеем.
shadowbeast вне форума Ответить с цитированием
Старый 13.02.2009, 16:36   #17
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
А как иначе можно получить разное количество ячеек в строках одной таблицы? Разве есть ещё способ кроме объединения?…
Обратным действием — разбиением
Попробуй в макросе заменить строку
Код:
oRow.Previous.Cells.Count
На
Код:
oTbl.Columns.Count
Дело в том, что в строках с объединенными ячейками количество ячеек отличается от количества столбцов в таблице. А количество столбцов всегда равно максимальному количеству ячеек в одной из строк. Тоже самое со строками.
Таким образом, мы получаем метод определения, что в таблице есть объединенные ячейки. Правда, неизвестно где именно они располагаются, поэтому избавится от объединенных ячеек можно только разбиением соответствующего столбца или строки.
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.02.2009 в 16:41.
viter.alex вне форума Ответить с цитированием
Старый 13.02.2009, 16:56   #18
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Строку заменил - никак)
Также простая таблица, 3 ячейки - объединённые.
shadowbeast вне форума Ответить с цитированием
Старый 13.02.2009, 18:38   #19
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от shadowbeast Посмотреть сообщение
Строку заменил - никак)
Также простая таблица, 3 ячейки - объединённые.
Sorry.
Вот так надо. Но это только для объединенных строк. Как делать для столбцов я еще не знаю
Код:
If oRow.Cells.Count <> oRow.Previous.Cells.Count Or oRow.Cells.Count <> oTbl.Columns.Count _
    Then oTbl.Split oRow
Добавлено позже
Оказывается, что если есть объединенные ячейки в строках, то отсутствует доступ к отдельным столбцам, и наоборот, если есть ячейки объединенные в столбцах, то нет доступа к отдельным строкам. Можно на этом сыграть, но как я еще не знаю
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 13.02.2009 в 18:48.
viter.alex вне форума Ответить с цитированием
Старый 13.02.2009, 19:23   #20
shadowbeast
Пользователь
 
Регистрация: 11.02.2009
Сообщений: 29
По умолчанию

Вставил, всё равно никак)
Видимо ещё в дополнение к ссылкам придётся справку Винды по Бейсику почитать.
Либо найти таки конвертер из doc в ASCII )))
shadowbeast вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17
преобразовать doc в txt не через OLE furstenberg Компоненты Delphi 0 12.11.2008 14:44
Открытие .doc или .docx в MS Word MADDAN Microsoft Office Word 4 16.09.2008 21:55
Открыть файл *.doc без установленого Word Pashekka Софт 6 15.09.2007 08:25