我知道有很多帖子说他们是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工作簿,运行一个宏并结束,但我不明白如何在代码中考虑一个动态文件名,例如日期会改变,但没有别的? 是否有可以使用的通配符变量?
请帮忙!
答案 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我们只是将其连接到文件名中。