Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何根据从日期选择的文件名在VB中检查文件是否存在_Excel_Vba - Fatal编程技术网

Excel 如何根据从日期选择的文件名在VB中检查文件是否存在

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

我想创建一个宏,可以根据文件名检查和打开文件。 例:

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, 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
这个问题对我来说有点模糊,我希望这个答案能回答

在工作簿后放置退出子项。打开吗?