簡體   English   中英

如何在Excel VBA中打開具有日期和時間格式的文件

[英]How to open file with format date and time in excel vba

我想打開並復制文件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

當您將代碼發布到帖子中時,似乎有些換行符已經消失了,但是假設您已意識到這一點,我認為您遇到的主要問題是弄清楚您要打開的文件的名稱嗎?

VBA Dir功能使您可以搜索文件夾中的文件,並可以在搜索中包括通配符。 我已經在您的子程序中包含了此功能,並在我的計算機上使用了一個類似名稱的文件對其進行了測試(盡管沒有復制工作表),並且它打開了工作表:

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上查看此帖子 ,該文章解釋了如何遍歷文件夾中的所有文件,應修改在那里顯示的宏以適合您的需要。相當瑣碎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM