gpt4 book ai didi

excel - 仅打开指定的工作簿

转载 作者:行者123 更新时间:2023-12-02 16:50:43 29 4
gpt4 key购买 nike

我每天运行此代码,这将影响目录中的每个 .xlsx 工作簿,但如果文件名不在“Okay”数组中,我如何忽略该工作簿?

这是我当前的语法:

Option Explicit
Public Sub OpenExcelInDir()
Dim MyFolder As String
Dim MyFile As String
MyFolder = "C:\ExcelSheets"
MyFile = Dir(MyFolder & "\*.xlsx")
Do While MyFile <> ""
Workbooks.Open Filename:=MyFolder & "\" & MyFile
MyFile = Dir
Call UpdateAllSheets
Loop
End Sub

现在我想改变它,以便我可以声明一个字符串数组,并且只打开数组中的工作簿,如下所示:

Dim goodWB() As String
goodWB= Split("ABC123,DEF456,GHI789", ",")

最佳答案

尽管我喜欢 IsInArray 函数,但我认为该算法效率很低。如果该文件夹中有 1000 个文件,并且少数给定文件名之一匹配,则您将创建 1000 个临时数组。此外,我希望在打开所需文件之一后,代码将不再针对该名称进行测试(事实并非如此)。相反,我建议从另一端看问题:

Public Sub OpenExcelInDir()
Dim goodWB, filename
Dim MyFolder As String
Dim MyFile As String

goodWB = Array("ABC123.xls", "DEF456.xlsx", "GHI789.xlsx")
MyFolder = "C:\ExcelSheets"

For Each filename In goodWB
MyFile = MyFolder & "\" & filename
If Len(Dir(MyFile)) > 0 Then
Workbooks.Open filename:=MyFile
Call UpdateAllSheets
End If
Next WB
End Sub

这里,Dir() 函数用于测试指定文件夹中是否存在所需的文件名。作为一个额外的优势,不会有任何像他/她的评论中提到的 EEM 那样的歧义。

关于excel - 仅打开指定的工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34252987/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com