Excel 如何根据从日期选择的文件名在VB中检查文件是否存在
我想创建一个宏,可以根据文件名检查和打开文件。 例: 15.xlsm作为打开的工作簿 12.xlsm作为目标 16.xlsm作为未来的工作簿 因此,当我单击15.xlsm中的一个按钮时,它将打开上一个文件12.xlsm。但在将来创建16.xlsm时,16.xlsm必须打开以前的工作簿15.xlsm 我试着用这个代码Excel 如何根据从日期选择的文件名在VB中检查文件是否存在,excel,vba,Excel,Vba,我想创建一个宏,可以根据文件名检查和打开文件。 例: 15.xlsm作为打开的工作簿 12.xlsm作为目标 16.xlsm作为未来的工作簿 因此,当我单击15.xlsm中的一个按钮时,它将打开上一个文件12.xlsm。但在将来创建16.xlsm时,16.xlsm必须打开以前的工作簿15.xlsm 我试着用这个代码 Sub Macro1() Dim a, x As Integer Dim path, filename As String Dim varday, varye
Sub Macro1()
Dim a, x As Integer
Dim path, filename As String
Dim varday, varyest As Long
varday = Day(Range("A1"))
For x = 1 To 30
varyest = varday - x
filename = "" & varyest & ".xlsm"
path = "F:\Kemal\" & filename & ""
If Dir(path) = "" Then
Else
Workbooks.Open filename:=path
End If
Next x
End Sub
但该代码已打开所有工作簿,如12.xlsm、10.xlsm、9.xlsm,并创建无限messagebox。是的,我知道算法,但是,如何把它变成代码是一个大问题。谁能帮帮我
那么,如何检查上一个文件是否存在,以及每个工作簿名称上的日期?要知道文件是否存在:
CreateObject("Scripting.FileSystemObject").FileExists(p)
如果要检查多个文件,可能需要使用整个文件夹的内容并查找数组
如果目标工作簿有一个未启动的工作簿,请执行以下操作:
Application.EnableEvents = False
workbooks.open(file)
Application.EnableEvents = true
这个问题对我来说有点模糊,我希望这个答案能回答在工作簿后放置退出子项。打开吗?