VBS用于选择动态文件名

时间:2016-10-25 19:34:11

标签: excel vbscript

我知道有很多帖子说他们是VBS的新手,但老实说,我以前从未写过VBS代码....
我想要自动化的是一份报告,我已经设法凑齐了以下内容:

Dim xlApp, xlBook
Set xlApp = CreateObject("Excel.Application")
    xlApp.DisplayAlerts = False 
    Set xlBook = xlApp.Workbooks.Open ("C:\Users\pierre\Desktop\Test folder\16 10 19 Spreadsheet.xlsm", 0, True)
xlApp.Run "macro1"
xlbook.Save
xlBook.Close False
set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit

显然它只是在特定位置打开一个excel工作簿,运行一个宏并结束,但我不明白如何在代码中考虑一个动态文件名,例如日期会改变,但没有别的? 是否有可以使用的通配符变量?

请帮忙!

1 个答案:

答案 0 :(得分:0)

您只需将日期存储到变量中,然后在文件名中使用该日期:

Dim xlApp, xlBook
Dim formattedDate
formattedDate = Right(datepart("yy", Now), 2) & " " & DatePart("m", Now) & " " & DatePart("d", Now)
Set xlApp = CreateObject("Excel.Application")
    xlApp.DisplayAlerts = False 
    Set xlBook = xlApp.Workbooks.Open ("C:\Users\pierre\Desktop\Test folder\" & formattedDate & " Spreadsheet.xlsm", 0, True)
xlApp.Run "macro1"
xlbook.Save
xlBook.Close False
set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit

在这里,我们使用函数datepart来获取当前日期Now的部分内容。我们还使用函数Right(),它将获得在第一个参数中为字符串指定的最右边的字符数。所有这些都使用&连接运算符连接在一起。然后使用该formattedDate我们只是将其连接到文件名中。