Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/вставка текста в заданное место - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » вставка текста в заданное место (Макросы/Sub)
вставка текста в заданное место
oleg60 Дата: Вторник, 12.07.2016, 13:22 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
необходима помощь в решении следующей задачи:
из-под excel запускается файл word, в котором есть набранный текст.
нужно этот же текст повторить в этом же документе (вставить его после существующего. Если при этом используется буфер обмена, то еще затем очистить его).
Попытался сделать это с помощью
[vba]
Код
ActiveDocument.Range.Copy
ActiveDocument.Range.Paste
objWrdDoc.Range(990).Paste
[/vba]
ругается, что "недопустимый диапазон". 990 - это опытным путем определено место вставки. Если задать Range меньше 990, то вставка накладывается на существующий тест.
Может быть есть решение лучше, чем использовать буфер?
Спасибо.
Ps: в VBA не силен (использую методом "тыка")
К сообщению приложен файл: 1440713.docx(15Kb) · 3193853.xlsm(17Kb)


Сообщение отредактировал oleg60 - Вторник, 12.07.2016, 14:23
 
Ответить
Сообщениенеобходима помощь в решении следующей задачи:
из-под excel запускается файл word, в котором есть набранный текст.
нужно этот же текст повторить в этом же документе (вставить его после существующего. Если при этом используется буфер обмена, то еще затем очистить его).
Попытался сделать это с помощью
[vba]
Код
ActiveDocument.Range.Copy
ActiveDocument.Range.Paste
objWrdDoc.Range(990).Paste
[/vba]
ругается, что "недопустимый диапазон". 990 - это опытным путем определено место вставки. Если задать Range меньше 990, то вставка накладывается на существующий тест.
Может быть есть решение лучше, чем использовать буфер?
Спасибо.
Ps: в VBA не силен (использую методом "тыка")

Автор - oleg60
Дата добавления - 12.07.2016 в 13:22
krosav4ig Дата: Вторник, 12.07.2016, 18:30 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1465
Репутация: 596 ±
Замечаний: 0% ±

Excel 2007, 2013
[vba]
Код
Sub OpenWord()
    Dim objWrdApp As Object, objWrdDoc As Object
  
    Sret objWdApp = CreateObject("Word.Application")
    objWrdApp.Visible = True
    Set objWrdDoc = objWrdApp.Documents.Open("\\sten.local\central\UserData\Морозов\Мои документы\ммм1.docx")
    With objWrdDoc.Range
        .Copy
        .Collapse wdCollapseEnd
        .Paste
    End With
    GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}").Clear
End Sub
[/vba]или[vba]
Код
Sub OpenWord()
    Dim objWrdApp As Object, objWrdDoc As Object, R As Object
  
    Sret objWdApp = CreateObject("Word.Application")
    objWrdApp.Visible = True
    Set objWrdDoc = objWrdApp.Documents.Open("\\sten.local\central\UserData\Морозов\Мои документы\ммм1.docx")
    With objWrdDoc.Range
        Set R = objWrdDoc.Range(.Start, .End - 1)
        .InsertParagraphAfter
        .InsertAfter R
    End With
End Sub
[/vba]


(_)Õvõ(_)
 
Ответить
Сообщение[vba]
Код
Sub OpenWord()
    Dim objWrdApp As Object, objWrdDoc As Object
  
    Sret objWdApp = CreateObject("Word.Application")
    objWrdApp.Visible = True
    Set objWrdDoc = objWrdApp.Documents.Open("\\sten.local\central\UserData\Морозов\Мои документы\ммм1.docx")
    With objWrdDoc.Range
        .Copy
        .Collapse wdCollapseEnd
        .Paste
    End With
    GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}").Clear
End Sub
[/vba]или[vba]
Код
Sub OpenWord()
    Dim objWrdApp As Object, objWrdDoc As Object, R As Object
  
    Sret objWdApp = CreateObject("Word.Application")
    objWrdApp.Visible = True
    Set objWrdDoc = objWrdApp.Documents.Open("\\sten.local\central\UserData\Морозов\Мои документы\ммм1.docx")
    With objWrdDoc.Range
        Set R = objWrdDoc.Range(.Start, .End - 1)
        .InsertParagraphAfter
        .InsertAfter R
    End With
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 12.07.2016 в 18:30
oleg60 Дата: Среда, 13.07.2016, 10:11 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 23
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Второй способ, наверное, предпочтительнее (не задействован буфер обмена), только не сохраняется исходное форматирование текста.
А первый вариант работает отлично. Спасибо за помощь!
 
Ответить
СообщениеВторой способ, наверное, предпочтительнее (не задействован буфер обмена), только не сохраняется исходное форматирование текста.
А первый вариант работает отлично. Спасибо за помощь!

Автор - oleg60
Дата добавления - 13.07.2016 в 10:11
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Word » вставка текста в заданное место (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!