Uma abordagem macro:
Eu não posso responder isso exatamente, mas e quanto a usar um programa de macro, então a única coisa que você precisa fazer é abrir os arquivos um a um e executar a macro? Isso pode ser viável se a coleção não for muito grande, senão você provavelmente terá que criar uma solução personalizada ...
Programando uma solução automática personalizada:
Desenvolvendo a resposta de A. Scagnelli, você pode usar sua linguagem .NET favorita (exemplos C #):
- Recursivamente enumerar subdiretórios .
-
Enumere cada arquivo em todos os diretórios encontrados, filtre na extensão excel.
- Automatize o Microsoft Excel desta forma: link
- E substitua o texto desta forma:
Pseudo-código:
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
Explicação:
Basta passar o caminho para o diretório pai e uma referência a uma lista quando você os chamar recursivamente.
Isso permite que você obtenha uma lista de pastas cujos arquivos você pode enumerar em um loop duplo.
Deixe o Excel aberto durante todo o algoritmo, apenas 'abra, substitua e feche' no loop interno.