[英]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中,文件有可能具有xlsx
或xlsm
等擴展名。 我還在目錄字符串的末尾添加了反斜杠,因為無論如何您都必須在文件名之前包含反斜杠。
我還為您打開的工作簿添加了if子句,以防找不到適合搜索的文件。
請注意,如果每個日期只生成一個文件,則此子項僅會執行您想要的操作。 如果要遍歷包含給定日期的所有文件,我建議在SO上查看此帖子 ,該文章解釋了如何遍歷文件夾中的所有文件,應修改在那里顯示的宏以適合您的需要。相當瑣碎。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.