当前位置:  开发笔记 > 编程语言 > 正文

在文件夹中查找最新文件并打开它(vba访问)

如何解决《在文件夹中查找最新文件并打开它(vba访问)》经验,为你挑选了1个好方法。

我正在尝试使用以下代码通过按钮宏在文件夹中打开最新文件.

使用if语句测试,我没有看到任何问题.但是,一旦我使用do,我收到运行时间6的溢出错误消息.

不适len(dir())用于循环?

以下是我的代码.

Private Sub Command4_Click()
Dim ~~~~ As Object
Set ~~~~ = CreateObject("Excel.Application")
Dim path As String
Dim name As String
Dim count As Long
Dim number As Long


path = "C:\Users\~~~~~\Desktop\~~~~~~~~~~~~\"
number = Len(Dir(path & "~~~~~~~ - " & Format(Now() - count, "MMMM dd, yyyy") & ".xlsm"))

Do While number = 0
count = count + 1
Loop

~~~~~.workbooks.Open path & "~~~~~~~ - " & Format(Now() - count, "MMMM dd, yyyy") & ".xlsm"


End Sub

由于机密性,〜行只是占位符.

非常感谢你.



1> george..:

你只是进入堆栈溢出,因为你的循环没有终点.只要number = 0,它就会继续运行,因为在循环中变量号总是等于0,所以循环永远不会停止.你应该将一些绑定到你的while循环中,以便在它中断时达到某个终点或根本不使用它.你想要实现的目标可能如下

Function NewestFile()

Dim FileName As String
Dim MostRecentFile As String
Dim MostRecentDate As Date
Dim FileSpec As String

'Specify the file type, if any
 FileSpec = "*.*" 
'specify the directory
 Directory = "C:"
FileName = Dir(Directory & FileSpec)

If FileName <> "" Then
    MostRecentFile = FileName
    MostRecentDate = FileDateTime(Directory & FileName)
    Do While FileName <> ""
        If FileDateTime(Directory & FileName) > MostRecentDate Then
             MostRecentFile = FileName
             MostRecentDate = FileDateTime(Directory & FileName)
        End If
        FileName = Dir
    Loop
End If

NewestFile = MostRecentFile

End Function

当循环遍历所有文件时,此循环将停止.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有