|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] Замена текста во всех файлах Word |
|
VBS/WSH/JS - [решено] Замена текста во всех файлах Word
|
Новый участник Сообщения: 4 |
Не работает replace не пойму в чем проблема
![]() Dim FSO, files, NameFile Dim objWord, objDoc Dim objSelection, myRange Set FSO = CreateObject("Scripting.FileSystemObject") Set objWord = CreateObject("Word.Application") objWord.DisplayAlerts = True Set files = FSO.GetFolder("D:\_Doc\").Files For Each NameFile In files if LCase(right(NameFile.Name,3))="doc" then 'MsgBox(NameFile) Set objDoc = objWord.Documents.Open("D:\_Doc\"&NameFile.Name) objWord.Visible = True Set myRange = objDoc.Content myRange.Find.Execute "+", False, False, False, False, False, True, wdFindContinue, False, "*", wdReplaceAll, False, False, False, False 'Set objSelection = objWord.Selection 'objSelection.Find.Text = "+" 'objSelection.Find.Forward = True 'objSelection.Find.MatchWholeWord = True 'objSelection.Find.Replacement.Text = "*" 'objSelection.Find.Execute ,,,,,,,,,,wdReplaceAll MsgBox(NameFile) objDoc.SaveAs("D:\_Doc\"&"_"&NameFile.Name) objDoc.Close Set objSelection = Nothing end if Next Set files = Nothing Set FSO = Nothing objWord.Quit |
|
Отправлено: 21:11, 19-04-2012 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать RiskSoft, как-то так:
Option Explicit Const wdFindContinue = 1 Const wdReplaceAll = 2 Dim objFSO Dim objFile Dim objWord Dim objDocument Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") Set objWord = WScript.CreateObject("Word.Application") objWord.Visible = False objWord.DisplayAlerts = False With objFSO For Each objFile In .GetFolder("D:\_DocIn").Files If UCase(.GetExtensionName(objFile.Name)) = UCase("doc") Then Set objDocument = objWord.Documents.Open(objFile.Path) WScript.Echo objFile.Name, objDocument.Content.Find.Execute("+", False, False, False, False, False, True, wdFindContinue, False, "*", wdReplaceAll) objDocument.SaveAs .BuildPath("D:\_DocOut", objFile.Name) objDocument.Close End if Next End With objWord.Quit Set objWord = Nothing Set objFSO = Nothing WScript.Quit 0 |
Отправлено: 22:26, 19-04-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Общая цель такова:
1. Найти в папке все файлы Word. 2. В каждом файле заменить слово "за май" на "за апрель" 3. Сохранить файл |
Отправлено: 10:15, 20-04-2012 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата RiskSoft:
1. Сохранять документ под тем же именем. 2. Только тогда, когда были сделаны замены. Так? |
|
Отправлено: 10:58, 20-04-2012 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Гениально !!! Все работает, я в таком восторге
![]() WScript.Echo objFile.Name, objDocument.Content.Find.Execute("Счет № 1/", False, False, False, False, False, True, wdFindContinue, False, "Счет № 4/", wdReplaceAll) WScript.Echo objFile.Name, objDocument.Content.Find.Execute("«31» января 2012 г.", False, False, False, False, False, True, wdFindContinue, False, "«30» апреля 2012 г.", wdReplaceAll) WScript.Echo objFile.Name, objDocument.Content.Find.Execute("за январь 2012 г.", False, False, False, False, False, True, wdFindContinue, False, "за апрель 2012 г.", wdReplaceAll) А можно еще переделать скрипт, чтобы не было MsgBox о произведенной замене. И автоматом еще отправить измененный документ на печать весь документы и определенные страницы. |
|
Отправлено: 11:08, 20-04-2012 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата RiskSoft:
Цитата RiskSoft:
И что Вы скажете по поводу моего вопроса выше? |
||
Отправлено: 12:22, 20-04-2012 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать По пункту 1, ответ: ДА
По пункту 2, ответ: ДА Все верно и все правильно сделано! По поводу печати, мне хочется знать как вывести на печать файл Word. Но проблема заключается в том что мне нужно вывести не весь документ, а скажем лист 2 и сделать 3 копии этого листа. |
Отправлено: 15:58, 20-04-2012 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата RiskSoft:
Цитата RiskSoft:
Цитата RiskSoft:
PrintOut Method*[Word 2007 Developer Reference], смотрите параметры «Copies», «Pages» и «Background». |
|||
Отправлено: 20:03, 20-04-2012 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - автоматический поиск и замена HEX в файлах | Tosyk | Скриптовые языки администрирования Windows | 36 | 06-11-2021 05:49 | |
CMD/BAT - [решено] Замена части текста в txt файлах | Traveller124 | Скриптовые языки администрирования Windows | 7 | 02-04-2012 19:16 | |
CMD/BAT - Сравнение и замена в файлах .txt | Deep2007 | Скриптовые языки администрирования Windows | 4 | 19-11-2010 19:08 | |
C/C++ - Поиск текста в файлах | student_po | Программирование и базы данных | 6 | 04-09-2009 23:33 | |
Пакетная замена в html-файлах | y3ep | Программное обеспечение Windows | 7 | 11-06-2004 08:06 |
|