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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.07.2008, 16:08   #1
Devourer12345
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 37
По умолчанию Копирование участка текста из Экселя в Ворд

Вопрос такого плана...
Есть Список имен в Экселе и есть письмо(скажем пригласительное).
Нужно написать подобное письмо каждому человеку из списка.

Как я представляю реализацию данной задачи--- Пользователь открывает фаил экселя со списком имен, запускает макрос у него спрашивают в каком столбе находятся имена он указывает nColums,
затем у него спрашивают название фаила в котором храниться письмо---stName. После чего программа происходит запись в письмо определенного имени и сохранение под этим же именем... используя---сохранить как...

Я подключил в экселе вордовскую объектнуюю библиотеку с номером 11 других небыло...


Код:
Option Explicit
Option Base 1
Sub Imena()
Dim obText As Object
Dim stName As String
Dim ph As String, nameRevers As String
Dim x As Integer, nColums As Integer, n As Integer, z As Integer
Dim imena() As String
ph = ActiveWorkbook.Path
nColums = InputBox("Vvedite nomer stolba")
n = Cells(1, nColums).CurrentRegion.Columns.Count
ReDim imena(n) As String
For x = 1 To n
imena(x) = Cells(1, x).Value
Next x
stName = InputBox("Name")
stName = ph & stName
Set obText = CreateObject("Word.Application")
With obText
.Documents.Open Filename:=stName
.Visible = True
With .Selection
    Selection.GoTo , Count:=6, Name:=""
    For x = 1 To n
    nameRevers = StrReverse(imena(x))
    z = StrComp(nameRevers, "б", vbTextCompare) ' определяем пол человека т.к. в ячейке экселя последней написана фамилия, то по ее последней букве и узнаем к кому обращаемся...
    
' До сюда все написанно коректно... вроде... непосредственно тут должны присутствовать 
' следующие функции-----
' Нахождение интересующей нас строки допустим это будет 6я строка и замена ее на 
' интересующий нас текст

' то как мы выбираем необходимый вариант для подстановки---
    If z = 1 Then
    Selection.TypeText Text:="Yvazaemi " & imena(x) & "!"
    Else
    Selection.TypeText Text:="Yvazaemaia " & imena(x) & "!"
    End If


End With
End With
End Sub
Буду очень признателен если на ряду с нахождением текста вы еще укажите как его форматить...

Последний раз редактировалось Devourer12345; 27.07.2008 в 16:10.
Devourer12345 вне форума
Старый 29.07.2008, 07:41   #2
vladtr
Форумчанин
 
Регистрация: 28.07.2008
Сообщений: 119
Радость Не надо ничего программировать в Word есть решение!

1. Не надо ничего программировать в Word есть решение! Используйте Сервис=> Письма и рассылки => Слияние...Это стандартная процедура... Создаете шаблон письма а уж потом генерите весь список.

2. Эту задачу можно решить в EXCEL. Создаете на первом листе форму письма, а на втором листе список из полей которые используются на листе формы. вешаете управление на форме и вперед(выбор листа, и диапазона печати,печать, текущий номер строки).. :-)
vladtr вне форума
Старый 29.07.2008, 16:11   #3
Devourer12345
Пользователь
 
Регистрация: 14.07.2008
Сообщений: 37
По умолчанию

=)
Спасибо но всетаки хотелось бы довест до ума мой код... не подскажите как?
Devourer12345 вне форума
Старый 30.07.2008, 08:13   #4
vladtr
Форумчанин
 
Регистрация: 28.07.2008
Сообщений: 119
По умолчанию

Для форматирования используйте:
Selection.ParagraphFormat.
Selection.Font.
----------------
кусок из WORd
----------------
Overtype = Not Overtype
Documents.Add DocumentType:=wdNewBlankDocument
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.TypeParagraph
Selection.TypeText Text:=" С П Р А В К А"
vladtr вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование текста из Memo bulkin2000 Компоненты Delphi 3 30.04.2012 14:03
Копирование текста столбцами CoDeR Общие вопросы Delphi 5 31.07.2008 19:07
Поиск и копирование текста из консольного окна Mago Паскаль, Turbo Pascal, PascalABC.NET 8 25.07.2008 15:04
из экселя в БД Shark2112 Microsoft Office Excel 1 16.10.2007 08:04
Копирование текста ячейки 2 цветов WIC Microsoft Office Excel 3 24.09.2007 13:32