отредактировано, чтобы быть более конкретным:
VBScript
ниже работает через всю папку, открывает каждый файл * .XLSM там , обновляет все подключения данных и сохраняетобновленные файлы по одному.Файлы также защищены паролем, но это не так важно.
Как улучшить код для AVOID файлов в папке на основе части или всего имя файла ?Например, избегайте имен файлов, заканчивающихся на z
, но с расширением .xlsm
.
Ожидаемый результат для файлов, находящихся в той же папке:
abc123.xlsm (обновить);abc123z.xlsm (избегать);file.xlsm (обновить);testz.xlsm (избегать)
Set fso = CreateObject("Scripting.FileSystemObject")
Set xl = CreateObject("Excel.Application")
xl.Visible = False
For Each f In fso.GetFolder("C:\test\").Files
If LCase(fso.GetExtensionName(f.Name)) = "xlsm" Then
Set wb = xl.Workbooks.Open(f.Path ,,,,,"x")
wb.RefreshAll
wb.Save
wb.Close
End If
Next
xl.Quit