【问题标题】:How to open file with format date and time in excel vba如何在excel vba中打开日期和时间格式的文件
【发布时间】:2015-02-24 07:16:20
【问题描述】:

我想打开并复制文件 TFM_20150224_084502 中的工作表,这个文件每天都有不同的日期和时间。我已经开发了代码,直到打开日期格式,但我无法开发以时间格式打开它。

它的更多代码是什么?

Sub OpenCopy ()

Dim directory As String, fileName As String, sheet As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "z:\FY1415\FI\Weekly Report\Astry"
fileName = "TFM_" & Format(Date, "yyyymmdd") & ".xls"

Workbooks.Open "z:\FY1415\FI\Weekly Report\Astry\" & "TFM_" & Format(Date, "yyyymmdd") & ".xls"
Sheets("MSP").Copy After:=Workbooks("Generate Report 2.xlsm").Sheets("PlanOEE")
ActiveSheet.Name = "MSP"

End sub

【问题讨论】:

  • 提供您的文件名示例?
  • @JLILIAman 有一个帖子开头的文件名示例(TFM_20150224_084502)
  • 请接受您最近对您的问题所做的编辑,以便您的代码格式正确,以供其他 SO 用户阅读。非常感谢。
  • 你的时间会改变还是总是 08:45:02?
  • 时间也在变化

标签: vba excel


【解决方案1】:

当您将代码发布到您的帖子中时,似乎有些换行符消失了,但假设您知道这一点,我认为您遇到的主要问题是弄清楚您要打开的文件的名称?

VBA Dir-function 允许您在文件夹中搜索文件,并允许您在搜索中包含通配符。我已在您的子程序中包含此功能,并在我的计算机上使用类似名称的文件对其进行了测试(尽管没有复制工作表),它打开了工作表:

Sub OpenCopy()

  Dim directory As String, fileName As String, sheet As Worksheet

  Application.ScreenUpdating = False
  Application.DisplayAlerts = False

  directory = "z:\FY1415\FI\Weekly Report\Astry\"
  fileName = Dir(directory & "TFM_" & Format(Date, "yyyymmdd") & "*.xls*")

  If fileName <> "" Then
    With Workbooks.Open(directory & fileName)
      .Sheets("MSP").Copy After:=Workbooks("Generate Report 2.xlsm").Sheets("PlanOEE")
    End With
    ActiveSheet.Name = "MSP"
  End If

  Application.ScreenUpdating = True
  Application.DisplayAlerts = True
End Sub

如您所见,与查找文件名相关的行是:

fileName = Dir(directory & "TFM_" & Format(Date, "yyyymmdd") & "*.xls*")

我只是使用Dir 来搜索适合括号内字符串的文件,其中星号是通配符。我在xls 之后也包含星号的原因是因为在较新版本的office 中,文件有可能具有xlsxxlsm 之类的扩展名。我还在目录字符串的末尾添加了一个反斜杠,因为无论如何您都必须在文件名之前包含它。

我还为您打开的工作簿添加了一个 if 子句,以防找不到适合搜索的文件。

请注意,如果每个日期只生成一个文件,则此子程序只会执行您想要的操作。如果您想遍历包含给定日期的所有文件,我建议您在 SO 上查看this post,它解释了如何遍历文件夹中的所有文件,修改那里提供的宏以满足您的需要相当琐碎。

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 2018-07-23
    • 2023-03-20
    • 2013-11-17
    相关资源
    最近更新 更多