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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2009, 15:17   #1
The_Andrei
Пользователь
 
Регистрация: 19.06.2009
Сообщений: 11
По умолчанию Автоматическое сохранение + Печать. Продолжение темы "Перенос данных из Excel в Word"

Здравствуйте.
Создал эту тему в продолжении темы «Перенос данных из Excel в Word»
Посмотрел ваш пример в архиве «письма.rar», то что мне нужно, но возникло несколько вопросов :
1) Почему у меня не подхватывается значение {оклад} - ?

2) Как вставить 2 одинаковых значения в документ, т.е. мне нужно, чтобы адрес отправления напечатался в документе 2 раза в разных местах.

3) Как реализовать, чтобы каждый лист сохранялся как отдельный документ и название бралось из строки таблицы «Название фирмы»? (на этот случай у меня есть макрос (файл 1.txt), но в нем не могу разобраться, что то напутано с синтаксем )

4) Как сделать, чтобы при сохранении автоматом отправлялось все на печать?
Вложения
Тип файла: rar Письма.rar (30.6 Кб, 30 просмотров)
The_Andrei вне форума Ответить с цитированием
Старый 20.06.2009, 16:20   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вы бы хоть сслыку на тему тему привели...

Цитата:
Как реализовать, чтобы каждый лист сохранялся как отдельный документ и название бралось из строки таблицы «Название фирмы»?
Я как-то делал такой макрос, который на основании шаблона создаёт не один многостраничный документ, а множество файлов с различными названиями.
Вам остаётся только поискать на форуме.
Впрочем, можно и этот макрос переделать - там изменить-то совсем немного.

Цитата:
Как сделать, чтобы при сохранении автоматом отправлялось все на печать?
При сохранении чего?
Что "всё" должно отправляться на печать?
А если по-новой нажать кнопку Сохранить, должно печататься ещё раз?
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 11:41   #3
The_Andrei
Пользователь
 
Регистрация: 19.06.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Вы бы хоть сслыку на тему тему привели...
Тема тут: http://programmersforum.ru/showthread.php?t=28058


Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Я как-то делал такой макрос, который на основании шаблона создаёт не один многостраничный документ, а множество файлов с различными названиями.

Вам остаётся только поискать на форуме.
Спасибо поищу
Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Впрочем, можно и этот макрос переделать - там изменить-то совсем немного.
А что там неправильно с синтаксом?

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
При сохранении чего?
Что "всё" должно отправляться на печать?
А если по-новой нажать кнопку Сохранить, должно печататься ещё раз?
Про сохранение вопрос снят
Самый главный вопрос почему в шаблоне не подтягивается {оклад}-?
The_Andrei вне форума Ответить с цитированием
Старый 21.06.2009, 12:22   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Спасибо поищу
Мне самому не удалось найти
Но пример в личных архивах сохранился...

Извлеките оба файла из вложения в одну папку, откройте файл Excel, и нажмите желтую кнопочку.

Возможно, такой Вариант Вас устроит.
Вложения
Тип файла: rar Excel to Word.rar (35.3 Кб, 83 просмотров)
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 13:56   #5
The_Andrei
Пользователь
 
Регистрация: 19.06.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Мне самому не удалось найти
Но пример в личных архивах сохранился...

Извлеките оба файла из вложения в одну папку, откройте файл Excel, и нажмите желтую кнопочку.

Возможно, такой Вариант Вас устроит.
Спасибо за этот архив, но я учусь vba и хочу понимать , что да как.
Посмотрите этот макрос. (1.txt)
'Имя файла берем из ячейки пятой строки второго столбца
sFileName = Trim(Right(oRng.Tables(1).Cell(3, 2).Range.Text, Len(oRng.Tables(1).Cell(3, 2).Range.Text) - 2))
sFileName = Trim(Right(oRng.Tables(1).Cell(3, 1).Range.Text, Len(oRng.Tables(1).Cell(3, 1).Range.Text) - 2)) & amp & sFileName
Мне нужно сделать, чтобы макрос имя документа брал из строки (Название фирмы). Как это реализовать. И если можно поясните команды в этой части макроса.
У меня ошибка
Изображения
Тип файла: jpg ошибка.JPG (14.4 Кб, 120 просмотров)
Вложения
Тип файла: doc письма.doc (43.0 Кб, 23 просмотров)

Последний раз редактировалось The_Andrei; 21.06.2009 в 14:38.
The_Andrei вне форума Ответить с цитированием
Старый 21.06.2009, 16:07   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Замените Right на Left
Код:
Sub test()
    txt = Tables(1).Cell(3, 2).Range.Text
    txt = Left(txt, Len(txt) - 2)
    ActiveDocument.SaveAs "c:\" & txt & ".doc"
End Sub
Вообще, это не лучший способ.
Надо проверять текст в ячейке на наличие запрещённых символов, в том числе отсекать непечатаемые символы в конце ячейки (зря Вы так уверены, что их всегда 2 - может быть и больше...)
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 17:25   #7
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Удалить непечатаемые символы в конце ячейки таблицы (это символы с кодами 7 и 13) можно так:
Код:
txt = Replace(CleanString (Tables(1).Cell(3, 2).Range.Text), ChrW(13), "")
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.06.2009, 18:02   #8
The_Andrei
Пользователь
 
Регистрация: 19.06.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Замените Right на Left
Код:
Sub test()
    txt = Tables(1).Cell(3, 2).Range.Text
    txt = Left(txt, Len(txt) - 2)
    ActiveDocument.SaveAs "c:\" & txt & ".doc"
End Sub
Вообще, это не лучший способ.
Надо проверять текст в ячейке на наличие запрещённых символов, в том числе отсекать непечатаемые символы в конце ячейки (зря Вы так уверены, что их всегда 2 - может быть и больше...)
С сохранением документа кое как разобрался.
Интересует такой вопрос почему не подтягивается значения {оклад} в моем варианте?
Вложения
Тип файла: rar 1.rar (24.2 Кб, 24 просмотров)
The_Andrei вне форума Ответить с цитированием
Старый 21.06.2009, 18:09   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Интересует такой вопрос почему не подтягивается значения {оклад} в моем варианте?
Потому что макрос так написан... скажем так, не лучшим образом.

Всё будет работать, если расположить строки в нужном порядке:
Код:
            .Find.Execute "{оклад}", False, , , , , , , , Cells(i, 2), True
            .EndKey Unit:=wdStory, Extend:=wdExtend

            .Find.Execute "{должность}", False, , , , , , , , Cells(i, 3), True
            .EndKey Unit:=wdStory, Extend:=wdExtend

            .Find.Execute "{отделение}", False, , , , , , , , Cells(i, 2), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
А чем Вас не устроил вариант с созданием множества файлов?
EducatedFool вне форума Ответить с цитированием
Старый 21.06.2009, 19:04   #10
The_Andrei
Пользователь
 
Регистрация: 19.06.2009
Сообщений: 11
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Потому что макрос так написан... скажем так, не лучшим образом.

Всё будет работать, если расположить строки в нужном порядке:
Код:
            .Find.Execute "{оклад}", False, , , , , , , , Cells(i, 2), True
            .EndKey Unit:=wdStory, Extend:=wdExtend

            .Find.Execute "{должность}", False, , , , , , , , Cells(i, 3), True
            .EndKey Unit:=wdStory, Extend:=wdExtend

            .Find.Execute "{отделение}", False, , , , , , , , Cells(i, 2), True
            .EndKey Unit:=wdStory, Extend:=wdExtend
А чем Вас не устроил вариант с созданием множества файлов?
Спасибо!!!
Для создания окончательно моего документа осталась только.
Рассчитать контрольную сумму CRC и вставить её в документ.
Скажите пожалуйста можно как нибудь средствами VBA посчитать контрольную сумму и вставить её например в Excel?
Если это невозможно, то программа Total Commander позволяет рассчитать CRC сумму и сохраняет её в файле с расширением .sfvю можно средствами VBA открыть этот файл и скопировать его содержимое в определенную ячейку в Excel?
The_Andrei вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
настроить при открытии Excel 2003 в окошке "Тип файлов" вывод пункта "Все файлы (*.*)" по умолчанию? Unior Microsoft Office Excel 2 01.03.2009 02:42
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03