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

Вход

Регистрация

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

 

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

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

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


Сообщение отредактировал 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
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,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]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[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
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 0 ±
Замечаний: 20% ±

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

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

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