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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2014, 14:09   #11
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Код:
Sub Fill()

Dim WA As Object, WD As Object

Set WA = CreateObject("Word.Application")
Set WD = WA.Documents.Open("C:\shablon.docx")

' здесь цикл по перебору всех значений в excel, допустим:
for i=1 to 900
WD.Range.Find.Execute FindText:=Cells(1, i), ReplaceWith:=Cells(3, i), Replace:=2
next

WA.Visible = True
Set WA = Nothing

End Sub
в первой строке содержиться нечто вроде тегов типа "[переменная]", в третьей данные на которые надо заменить

Последний раз редактировалось maksim_serg; 24.01.2014 в 14:12.
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 14:11   #12
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Можете поделиться макросом?
Ksardex, выступлю в роли прорицателя:
для того, чтобы Вы убедились, что он не подходит Вам, как два предыдущих?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 24.01.2014, 14:16   #13
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
for i=1 to 900
Поясните, пожалуйста, за что отвечает эта строка?

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
Sub Fill()
WD.Range.Find.Execute FindText:=Cells(1, i), ReplaceWith:=Cells(3, i), Replace:=2
Правильно ли я понял, что таким образом заменяется 2 (в данном случае) значения? Сохраняется ли ограничение на 255 символов?

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Ksardex, выступлю в роли прорицателя:
для того, чтобы Вы убедились, что он не подходит Вам, как два предыдущих?
Не понимаю к чему этот комментарий. Я ищу решение проблемы, если Вы не можете предложить что-то стоящее или поделиться советом, то прошу не засорять тему.

Последний раз редактировалось Ksardex; 24.01.2014 в 14:18.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 14:18   #14
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Replace - Variant Specifies how many replacements are to be made: one, all, or none. Can be any WdReplace constant. =2, просто Excel не знает что такое WdReplace

Replace:=0 ничего не менять
Replace:=1 поменять первое значение
Replace:=2 поменять все найденые значения

Последний раз редактировалось maksim_serg; 24.01.2014 в 14:21.
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 14:19   #15
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

если Вы не можете предложить что-то стоящее или поделиться советом, то прошу не засорять тему.


аххххха. Да он больше меня знает)
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 14:20   #16
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
Replace - Variant Specifies how many replacements are to be made: one, all, or none. Can be any WdReplace constant. =2, просто Excel не знает что такое WdReplace
А вот это уже хорошо.
Вопрос об ограничении кол-ва символов все еще открыт.

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
если Вы не можете предложить что-то стоящее или поделиться советом, то прошу не засорять тему.


аххххха. Да он больше меня знает)
Однако сообщение уважаемого модератора крайне несодержательно.
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 14:27   #17
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

мой код на VB, разберетесь?
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 14:30   #18
Ksardex
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 18
По умолчанию

Цитата:
Сообщение от maksim_serg Посмотреть сообщение
мой код на VB, разберетесь?
Постараюсь деваться то некуда
Ksardex вне форума Ответить с цитированием
Старый 24.01.2014, 14:32   #19
maksim_serg
Форумчанин
 
Аватар для maksim_serg
 
Регистрация: 25.03.2010
Сообщений: 417
По умолчанию

Код:
With Word.Documents.Open(Fold & "\CreateDocTemp_" & (Thr + 1) & ".doc").Content.Find
                    Dim LSTR As String
                    For i = 2 To DataGridView1.ColumnCount - 1
                        LSTR = DataGridView1.Item(i, DocFilesThread(Thr, y)).Value

                        If Len(LSTR) > 255 Then
                            .Text = "{" & DataGridView1.Columns(i).HeaderText & "}"
                            .Replacement.Text = "{%%%}"
                            .Execute(Replace:=2)
                            .Text = "{%%%}"
                            Dim A() As String = StringToArray(LSTR, 250)
                            For Each str1 In A
                                .Replacement.Text = str1 & "{%%%}"
                                .Execute(Replace:=2)
                            Next
                            .Replacement.Text = ""
                            .Execute(Replace:=2)
                        Else
                            .Text = "{" & DataGridView1.Columns(i).HeaderText & "}"
                            .Replacement.Text = LSTR
                            .Execute(Replace:=2)
                        End If

                        Progres += 1
                    Next
 End With
Код:
    Public Function StringToArray(ByVal STR As String, ByVal LENGTH As Integer) As Array
        Dim n As Integer = 0
        Dim AR() As String
        ReDim AR(Math.Ceiling(Strings.Len(STR) / LENGTH) - 1)
        For i = 0 To Math.Ceiling(Strings.Len(STR) / LENGTH) - 1
            AR(i) = Mid(STR, i * LENGTH + 1, LENGTH)
        Next
        StringToArray = AR
    End Function
maksim_serg вне форума Ответить с цитированием
Старый 24.01.2014, 14:35   #20
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

И чего это сообщение уважаемого модератора несодержательно? Это просто намёк, и довольно "толстый".
Вот есть у Вас уже куча рабочего кода - пользуйтесь. Подгоняйте под свои неведомо какие файлы...
Это тоже намёк. Ещё толще
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автоматический перенос данных с таблиц Excel в текст Word YSL Microsoft Office Word 52 27.06.2021 05:01
перенос данных из excel в word D_e_n_n Microsoft Office Excel 9 14.03.2011 08:06
Перенос выделенных данных из Excel в Word. Kolpachog Microsoft Office Excel 3 02.06.2010 16:47
Перенос данных из Excel в Word Volch Microsoft Office Excel 6 19.10.2008 20:36
Перенос данных из MS Word в MS Excel ? Nickd5 Помощь студентам 2 28.06.2008 20:40