Скрипт VB RefreshAll в папке (за исключением) - PullRequest
0 голосов
/ 07 мая 2019

отредактировано, чтобы быть более конкретным:

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

1 Ответ

0 голосов
/ 11 июня 2019

вы можете попробовать использовать команду split.

file_path =abc123.xlsm
file_name =split(file_path,".")

имя_файла - это массив, содержащий 2 значения

имя_файла (0) = abc123

имя_файла (1) = xlsm

теперь вы можете проверить, является ли последний символ в file_name (0) = "Z"

if NOT(right(file_name(0),1)="Z") THEN
    do...
ELSE
    do...
END IF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...