Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Excel _ Перевод 1000 формул

Автор: Evyshka Понедельник, 24 Апреля 2006, 9:06

tongue.gif Имеется около 100 документов с формулами жестко привязанными к серверу (в формуле указываеться имя сервера) Возникла необходимость перекинуть все доки на другой сервер - Можно ли как нибудь не вручную исправить имя сервера во всех документах сразу??? ТО есть исправлять не в каждой формуле tongue.gif

Автор: krassavchik Понедельник, 24 Апреля 2006, 18:08

Ну а почему нельзя?

Не знаю точно как в Excell но в openoffice.org Calc. можно зайти в edit -> Fing and replace и вперед....

Автор: Квазимодо Вторник, 25 Апреля 2006, 10:31

Оно, конечно, и в Excel есть меню Edit -> Replace, но здесь-то документов много, и лучше попробовать сделать замену программно. Ну, например, скриптом - что-то вроде этого:

Код
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshFS = WScript.CreateObject("Scripting.FileSystemObject")

ToReplace = "\\server1" 'строка с именем старого сервера, которую мы заменяем
ReplaceWith = "\\server2" 'на строку с именем нового
DirName = "\\server2\path" 'путь, где лежат эти 100 файлов

Set fldr = WshFs.GetFolder(DirName)
Set fcoll = fldr.Files

Set XlApp = CreateObject("Excel.Application")
XlApp.DisplayAlerts = False
For Each f in fcoll
 XlApp.Workbooks.Open(DirName + "\" + f.name)
 Set XlWb = XlApp.Workbooks(1)
 For Each XlSheet in XlWb.Worksheets
   Set XlRange = XlSheet.UsedRange  'получаем объект Range - используемый диапазон
   Res = XlRange.Replace(ToReplace,ReplaceWith,,,False) 'последний False - это значит не учитывать
      'регистр символов, если надо, поменяешь на True
 Next
 XlWb.Save
 XlWb.Close
Next
Set XlApp = Nothing
Set WshShell = Nothing
Set WshFS = Nothing


Автор: pashulka Вторник, 25 Апреля 2006, 12:58

На самом деле, заменить текст во всех рабочих книгах сразу, т.е. одновременно, конечно же нельзя tongue.gif А вот последовательно конечно можно, только не стоит забывать, что подобная замена касается не только формул, но и значений ячеек, поэтому, если существует вероятность, что имя сервера может наличествовать в виде 'текста', то замену необходимо производить только в ячейках, содержащих формулы.

Автор: Evyshka Среда, 26 Апреля 2006, 8:16

tongue.gif Спасибо будем пробовать

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)