文件夹中的VB脚本RefreshAll(例外)

时间:2019-05-06 21:24:24

标签: excel vbscript

进行了更具体的编辑:

下面的

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 :(得分:0)

您可以尝试使用split命令。

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