首页 > 解决方案 > 文件夹中的 VB 脚本 RefreshAll(例外)

问题描述

编辑得更具体:

VBScript下面遍历整个文件夹,在那里打开每个 *.XLSM 文件,刷新所有数据连接并一一保存更新的文件。文件也受密码保护,但这并不重要。

如何根据部分或整个文件名增强代码以避免文件夹中的 文件?例如,避免文件名以z但是.xlsm扩展名结尾。

位于同一文件夹中的文件的预期结果:

abc123.xlsm(刷新);abc123z.xlsm(避免);文件.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

标签: excelvbscript

解决方案


您可以尝试使用拆分命令。

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

file_name 是一个包含 2 个值的数组

文件名 (0)=abc123

文件名 (1)=xlsm

现在您可以检查 file_name(0)="Z" 中的最后一个字符是否

if NOT(right(file_name(0),1)="Z") THEN
    do...
ELSE
    do...
END IF

推荐阅读