|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.09.2014, 23:24 | #1 |
Регистрация: 29.09.2014
Сообщений: 7
|
Многократное копирование и вставка значений из таблицы Ворд в формулу в Ворде при помощи макроса
Здравствуйте, помогите пожалуйста дилетанту.
alexOK2201@yandex.ru В документе Ворд присутствует обычная неименованная таблица (диапазону не присвоено имя) размером 2 ячейки на 2 ячейки. Содержимое таблицы визуально: a 2 b 3 Под таблицей находится ряд простых и примитивных формул вида: a+b= + = a-b= - = a^2+b^2= ^2+ ^2= Моя задача сводится к тому, чтобы поочередно скопировать и вставить значение "переменных" "a" и "b" из таблицы ворд (a=2 b=3 как вы поняли) в вышеуказанные формулы при помощи макроса ворд: Чтобы документ принял вид (должна остаться таблица и должны быть "переписаны" значения переменных a 2 b 3 a+b=2+3 a-b=2-3 a^2+b^2=2^2+3^2 Цель: не "научить" ворд вычислять математические выражения, а понять смысл кода макроса и применить его к главам дипломной работы, в которой очень много формул "перебивать" в ручную которые бы не хотелось при условии, что данные в таблице часто меняются и из-за этого часто приходится корректировать текст в пояснительной записке (то есть копировать и вставлять из таблицы значения в формулы по листам 30-40 текста) За помощь заранее благодарен Пробная запись макроса без отладки выдает кучу ошибок |
29.09.2014, 23:40 | #2 |
Регистрация: 29.09.2014
Сообщений: 7
|
дополнение
Насколько я понимаю при копировании данных таблицы в соответствующие поля формул ворда, представленных в профессиональном, а не линейном виде из-за разного типа данных (таблица - текст) происходит несуразица
Исходный вид документа a 2 b 3 a+b=2 +3 = a-b= 2- 3= a^2+b^2=2^2+3^2= при замене значений в таблице и при запуске записанного макроса преобразуется в нечто корявое несоответствующее моим ожиданиям a 7 b 15 a a+b=72 +3 = a a-b= 27- 3= a a^2+b^2=72^2+3^2= |
30.09.2014, 00:02 | #3 |
Регистрация: 29.09.2014
Сообщений: 7
|
дополнение код макроса ворд
Чтобы понять в чем ошибка выкладываю текст макроса. Так как я не специалист в области программирования на VBA, попрошу вас по возможности добавить комментарии напротив строк макроса с пояснениями, что осуществляется на том или ином этапелибо если нет свободного времени решать чужие проблемы, указать мне ссылку на сайт, где я смогу почерпнуть для себя полезную информацию по программированию и написанию макросов в ворд
Заранее очень признателен Код макроса Sub ' ' Selection.MoveUp Unit:=wdLine, Count:=5 (перемещение по тексту курсором вверх) Selection.MoveLeft Unit:=wdCharacter, Count:=1(перемещение по тексту курсором влево) Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend (перемещение по тексту курсором вправо) Selection.Copy (выделение значения переменной а, копирование в буфер обмена) Selection.MoveDown Unit:=wdLine, Count:=2 (перемещение по тексту курсором вниз) Selection.MoveRight Unit:=wdCharacter, Count:=6 (перемещение по тексту курсором вправо) Selection.PasteAndFormat (wdPasteDefault) (выделение и вставка значения переменной а) Selection.MoveDown Unit:=wdLine, Count:=1 Selection.PasteAndFormat (wdPasteDefault) Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveLeft Unit:=wdCharacter, Count:=3 Selection.PasteAndFormat (wdPasteDefault) Selection.MoveUp Unit:=wdLine, Count:=5 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Copy Selection.MoveDown Unit:=wdLine, Count:=2 Selection.MoveRight Unit:=wdCharacter, Count:=2 Selection.PasteAndFormat (wdPasteDefault) Selection.MoveDown Unit:=wdLine, Count:=1 Selection.PasteAndFormat (wdPasteDefault) Selection.MoveDown Unit:=wdLine, Count:=1 Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdPasteDefault) End Sub |
30.09.2014, 00:19 | #4 |
Регистрация: 29.09.2014
Сообщений: 7
|
попробовал изменить код макроса
Заменил макрокоманду
Selection.PasteAndFormat (wdPasteDefault) на Selection.PasteAndFormat (wdFormatPlainText) позволяющую просто вставить текст с незатронутым форматированием Источник данных: http://www.pcmag.ru/solutions/detail.php?ID=11060 Автоматизация вставки без форматирования в Word 2003 У меня версия Ворд 2007 года В итоге изменений не заметил: a 5 b 8 aa+b=52 +3 = aa-b= 25- 3= a^2a+b^2=52^2+3^2= До этого предыдущими значениями а и б были 2 и 3. Такое ощущение, что эти значения остались в буфере обмена и не были удалены (а как выражаются программисты "были сжаты "в точку") Вопрос остается открытым, что мне изменить, чтобы код выполнялся правильно? |
30.09.2014, 00:34 | #5 |
Регистрация: 29.09.2014
Сообщений: 7
|
неудачные пробы
Даже при попытки действовать по алгоритму:
1. Выделить значение переменной а, 2. Скопировать значение переменной а, 3. Переместить курсор в нужную позицию документа на ту часть формулы, где требуется вставить значение переменной а, 4. Выделить прежнее числовое значение переменной а, 5. Удалить прежнее числовое значение переменной а, 6. Вставить действующее значение переменной а из буфера обмена в нужную позицию документа на ту часть формулы, где требуется вставить значение переменной а аналогичные действия и с копированием, удалением и вставкой значения переменной б Вопрос открытый, что делать??? |
30.09.2014, 00:35 | #6 |
Регистрация: 29.09.2014
Сообщений: 7
|
Недоработанный код макроса после отладки
Sub Ìàêðîñ1()
' ' Ìàêðîñ1 Ìàêðîñ ' ' Selection.MoveLeft Unit:=wdCharacter, Count:=47 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Copy Selection.MoveRight Unit:=wdCharacter, Count:=14 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdFormatPlainText) Selection.MoveRight Unit:=wdCharacter, Count:=12 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdFormatPlainText) Selection.MoveRight Unit:=wdCharacter, Count:=19 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdFormatPlainText) Selection.MoveLeft Unit:=wdCharacter, Count:=44 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Copy Selection.MoveRight Unit:=wdCharacter, Count:=11 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdFormatPlainText) Selection.MoveRight Unit:=wdCharacter, Count:=13 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdFormatPlainText) Selection.MoveRight Unit:=wdCharacter, Count:=22 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.MoveLeft Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=1 Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Delete Unit:=wdCharacter, Count:=1 Selection.PasteAndFormat (wdFormatPlainText) End Sub Последний раз редактировалось oleg2201; 30.09.2014 в 00:41. |
30.09.2014, 01:16 | #7 |
Регистрация: 29.09.2014
Сообщений: 7
|
могут ли мне помочь указанные команды ворд при написании макроса?
EditPaste Вставка содержимого буфера обмена в месте расположения курсора
EditPasteAppendTable Вставка содержимого буфера обмена в месте расположения курсора EditPasteAsHyperlink Вставка содержимого буфера обмена как объекта гиперссылки EditPasteAsNestedTable Вставка содержимого буфера обмена в месте расположения курсора EditPasteFromExcel Вставка содержимого буфера обмена в месте расположения курсора EditPasteOption Вставка содержимого буфера обмена в месте расположения курсора с использованием определенного режима восстановления И НЕ ПОТОМУ ЛИ У МЕНЯ ТАК МНОГО ОШИБОК, ЧТО Я РАБОТАЮ С РАЗЛИЧНЫМ ТИПОМ ДАННЫХ? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обновление дат при помощи макроса | alexp21 | Microsoft Office Excel | 2 | 26.09.2013 14:56 |
Копирование таблицы из Ворд в Эксель | Ольга060289 | Помощь студентам | 2 | 19.10.2012 11:09 |
Вставка таблицы эксель в ворд | n0str0m0 | Microsoft Office Word | 3 | 22.05.2012 11:51 |
Копирование и вставка значений | tae1980 | Microsoft Office Excel | 7 | 29.05.2009 09:15 |
Изменить цвет при помощи макроса | А. Долматов | Microsoft Office Excel | 5 | 26.09.2007 21:02 |