警告,这是我第一次(也是失败了)尝试使用loop语句。
我有一个文件夹,其中包含许多工作簿,这些工作簿的文件名中都包含日期。我想创建一个宏,该宏使用用户提供的日期打开名称中包含该日期的所有工作簿。
我当前的循环语句只是一遍又一遍地重新打开同一个文件,而不是打开名称中包含该日期的所有文件,然后退出循环,即使文件夹中有几个文件的名称中包含该日期。这就是我目前所知道的..。
Dim finddate As Variant
Dim formatedate As String
Dim mypath As String
finddate = InputBox("Enter Date to Show Records")
Range("A1") = finddate
formatedate = ActiveSheet.Range("A2").Value
mypath = "filepathhere\???????" & formatedate & ".xlsm"
Do While mypath <> ""
Workbooks.Open Filename:=mypath
Loop
A2中的公式对用户输入的日期进行格式化,以匹配文件的命名方式。我还需要做些什么来告诉它从第一个文件继续并在文件夹中查找其他文件?此外,我不确定如何退出循环,因此一旦它(希望)打开该日期的文件,它将停止在文件夹中循环。
发布于 2018-06-02 09:48:10
一个简单的解决办法是在使用文件后将其删除。当然,您应该将您的文件备份到其他地方。通常我会先重命名文件。
Set fso = CreateObject("Scripting.FileSystemObject")
Set fsoFolder = fso.getfolder(filePath)
fsoFile.Name = "d:\folder\blablabla.xls"
' do your things
FileSystem.Kill "d:\folder\blablabla.xls" 'delete file
https://stackoverflow.com/questions/50651311
复制相似问题