0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 11
|
|
1 | |
"работа с выделением Selection объекта word.Bookmarks и .shapes через excel"18.12.2015, 16:03. Показов 3494. Ответов 3
Метки нет (Все метки)
Доброе время суток. Возникла проблема: Суть
имеется 2 макроса оба запускаются из excel 1-ый выбираем файлы word, создаем таблицу Имя Индекс Путь 2-ой заменяет колонтитулы в этих файлах Проблема: В каждом из файлов word имеется надпись к которой привязана закладка Необходимо в данной надписи через Shapes или же через саму закладку Bookmark выполнить обычные преобразования через Selection.Find т.е заменить текст на какой-либо Сами макросы: Sub tablefiles() ' задает таблицу из имен выбранных файлов с полями Имя файла Индекс Путь файла Dim oFD As Object Dim lf As Long Dim x, y As String Dim pos, name As String Dim count, countItems As Long With ActiveWorkbook.ActiveSheet .Cells.Clear End With Cells(1, 1) = "Имя файла" Cells(1, 2) = "Номер учетника" Cells(1, 3) = "Путь к файлу" count = 1 Set oFD = Application.FileDialog(msoFileDialogFilePicker) With oFD .AllowMultiSelect = True '.Title = " '.Filters.Clear ' .Filters.Add "word files", "*.doc;*.docx", 1 ' '.Filters.Add "Text files", "*.txt", 2 ' '.FilterIndex = 2 ' .InitialFileName = "C:\Users\Павел\Desktop\Макросы" 'Указать папку с файлами .InitialView = msoFileDialogViewDetails ' If oFD.Show = 0 Then Exit Sub ' For lf = 1 To .SelectedItems.count countItems = .SelectedItems.count x = .SelectedItems(lf) pos = InStrRev(x, "") name = Right(x, Len(x) - pos) y = name Cells(1 + count, 3) = x Cells(1 + count, 1) = y count = count + 1 Next End With End Sub Первый макрос работает корректно Sub Openfiles() ' после добавления нового столбца в таблицу задает нижние колонтитулы файлам With ActiveWorkbook.ActiveSheet Dim way, kolon As String Dim x, r1, r2 As range Dim i, j, z As Long Dim word As Object Dim doc As Object z = 1 Set x = range("C2:C20") End With For k = 2 To 50 If Not Cells(k, 3).Text = "" Then way = Cells(k, 3) kolon = Cells(k, 2) '.HorizontalAlignment = xlCenter ' расставляем колонтитулы в файле Set word = CreateObject("Word.Application") Set doc = word.Documents.Open(way) With word.Selection .PageSetup.DifferentFirstPageHeaderFooter = True End With word.ActiveWindow.ActivePane.View.SeekView = 5 With word.Selection .Wholestory .TypeText Text:="Уч. № " .TypeText Text:=kolon .ParagraphFormat.Alignment = 1 ' по центру End With word.Browser.Next word.ActiveWindow.ActivePane.View.SeekView = 0 word.ActiveWindow.ActivePane.View.SeekView = 10 With word.Selection .Wholestory .TypeText Text:="Уч. № " .TypeText Text:=kolon .ParagraphFormat.Alignment = 1 End With word.ActiveWindow.ActivePane.View.SeekView = 0 word.Visible = True 'скрытый word '_________________________Здесь проблема 'For i = 1 To word.ActiveDocument.bookmarks.count 'with word.ActiveDocument.bookmarks(i).Select Selection.Find.Text = "123" Selection.Find.Replacement.Text = "3333" Selection.Find.Execute Replace:=wdReplaceAll ' End With ' Next i '________________________________________ 'doc.Save 'doc.Close 'конец расстановки Else Exit For End If Next k 'End With End Sub Собственно проблема в части кода For i = 1 To word.ActiveDocument.bookmarks.count 'with word.ActiveDocument.bookmarks(i).Select Selection.Find.Text = "123" Selection.Find.Replacement.Text = "3333" Selection.Find.Execute Replace:=wdReplaceAll ' End With ' Next i Не работает пробовал разные варианты: For i = 1 To word.ActiveDocument.bookmarks.count 'with word.ActiveDocument.bookmarks(i).Select word.Selection.Find.Text = "123" word.Selection.Find.Replacement.Text = "3333" word.Selection.Find.Execute Replace:=wdReplaceAll ' End With ' Next i Ничего не делает Помогите разобраться Приложил 2 файла Excel с макросами Word для теста
0
|
18.12.2015, 16:03 | |
Ответы с готовыми решениями:
3
Работа метода Word.Selection.Find при поиске в документе Word Как ускорить замену текста в Shapes через Microsoft.Office.Interrop.Word Как работать с объектом selection ячейки таблицы word из приложения Excel в ВБА Работа в Word через WBA в Excel |
4134 / 2238 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
||||||||||||||||
18.12.2015, 16:47 | 2 | |||||||||||||||
Если говорить только о закладках, то :
Замена текста в одной закладке
0
|
0 / 0 / 0
Регистрация: 18.12.2015
Сообщений: 11
|
|
18.12.2015, 23:10 [ТС] | 3 |
Благодарю, с закладками разобрался, но как все таки быть если имеется обычная надпись, на которую не поставлена закладка?
Добавлено через 11 минут Разобрался, спасибо, тема закрыта.
0
|
4134 / 2238 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
|
|||||||||||
19.12.2015, 09:30 | 4 | ||||||||||
Давайте не будем эгоистами и подскажем всем, у кого возникла аналогичная задача, что заменить текст в обычных надписях (которые не "скрываются" в колонтитулах и т.п.) можно, например, так :
P.S. При использовании позднего связывания - As Shape нужно заменить на As Object 'Variant
0
|
19.12.2015, 09:30 | |
19.12.2015, 09:30 | |
Помогаю со студенческими работами здесь
4
Работа с word через excel (передача строки) Работа с Word/Excel через Ole/иные способы Activeqt+word+bookmarks Word 2016 Bookmarks ошибка com Word - Как вывести закладки (Bookmarks) в ComboBox Вставка закладок (Bookmarks) с текстом в закладке| MS Word Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |