Как найти и заменить пути ссылок в нескольких файлах Excel сразу

у нас есть огромная папка с документами Office на нашем сервере. Он хочет изменить имя папки от Mehper_repository to Planning_reports. Поскольку большинство файлов Excel в подпапках связаны друг с другом, мне нужно найти и заменить каждое содержимое ячейки, содержащее FileSrvMehper_repository до FileSrvPlanning_reports. Проблема в том, Excel найти / заменить утилита может искать только в пределах листа или книги. Как я могу искать в папке / подпапках, просто глядя в формулах и заменяя это выражение?

5
задан Mehper C. Palavuzlar
28.04.2023 4:02 Количество просмотров материала 3227
Распечатать страницу

3 ответа

Я предложил бы коммерческий продукт PowerGREP:

PowerGREP-мощный Windows grep инструмент. Быстрый поиск по большому количество файлов на вашем ПК или сеть, включая текстовую и двоичную файлы, сжатые архивы, MS Word документы, электронные таблицы Excel, PDF файлы, файлы OpenOffice и др. найти информация вы хотите с мощным текстовые шаблоны (регулярные выражения) указание формы, которую вы хотите, вместо буквального текста. найти и заменить С одним или много регулярн выражения к всесторонне ведение веб-сайтов, исходный код, отчеты и т. д. Извлечение статистики и знания из файлов журналов и больших набор данных.

image

2
отвечен harrymc 2023-04-29 11:50

здание от ответа TomWij все, перебрать все ячейки, ищу ссылки на "\FileSrv\\ Mehper_repository" и заменить "\FileSrv\Planning_reports\". Возможно, вы сможете использовать коллекцию ячеек, чтобы сделать это быстрее, но это может мешать формулам плохими способами (тем более, что эта строка не будет изолирована).

попробуйте спросить о написании VBA, как это на StackOverflow, вы, скорее всего, получите ответ, связанный с программированием, чем на суперпользователь.

3
отвечен Andrew Scagnelli 2023-04-29 14:07

макро-подход:

Я не могу точно ответить на этот вопрос, но как насчет использования макропрограммы, поэтому единственное, что вам нужно сделать, это открыть файлы один за другим и запустить макрос? Это может быть осуществимо, если коллекция не слишком велика, если нет, вам, вероятно, придется придумать программирования пользовательских решений...


Программирование пользовательского автоматического решения:

здание от ответа А. Scagnelli по , вы можете взять свой любимый язык .NET и сделать (Примеры c#):

псевдо код:

openExcel

// Fills the list recursively with aboslute paths of the subfolders of path.
enumerateFolder(list, path)

// Enumerate paths. 
foreach(path in list)
{
   // Enumerate files
   foreach(file in path)
   {
      openFileInExcel
      replaceFileContents
      closeFileInExcel
   }
}

closeExcel

объяснение:

просто передайте путь к родительскому каталогу и ссылку на список, когда вы вызываете их рекурсивно. Это позволяет получить список папок, файлы которых можно перечислять в двойном цикле.

оставить Excel открытым в течение всего алгоритма, просто "открыть, заменить и закрыть" во внутреннем цикле.

3
отвечен Tom Wijsman 2023-04-29 16:24

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх