如何在VBA中打开文件时排除周末?

时间:2017-05-16 05:38:15

标签: excel vba excel-vba date

每天一个文件将创建日期为上一个工作日。 例如,(2017年5月16日,星期二)文件将创建日期为星期一05/15/2017。 而在2017年5月15日,星期一文件将创建日期为2017年12月5日。

我正在尝试使用以下代码的VBA打开文件, 文件名格式= "C:\users\Duke\report'05/15/2017'.XLS"

sub OpenFile()    
  Const fpath As String = "C:\users\Duke\Report"  
  Dim fname As String

fname = Format(Date - (Weekday((Date),Vbmonday) - 1), "yyyy-mm-dd")  
fname = "'" & fname & "'" & ".XLS"

  Dim path As String
path = fpath & fname

end ()

但它没有用,请建议。

1 个答案:

答案 0 :(得分:0)

VBA没有处理工作日的内置方法。但是,如果您的代码仅运行M-F而SS是周末,则以下可能会计算所需的日期:

  Dim X As Long
  X = IIf(Weekday(Date) = vbMonday, 3, 1)
fname = Format(Date - X, "yyyy-mm-dd")

如果您的代码也可能在周末运行,那么您必须定义您希望在该事件中发生的事情