脚本根据时间/date打开特定的Excel文件/工作表

我们有一个包含每个月的子文件夹的文件夹,每个子文件夹包含每天的Excel文件。 每个Excel文件有三个表,早,晚和夜class。 我想要的是一个脚本,它可以检查现在是什么时间,并用正确的class次打开Excel文件。 Shift可以随时间指定。 对于夜class,我需要从前一天的Excel文件。

该脚本检查月份(打开文件夹2015年)后,检查月份(打开文件夹11(例如)),然后检查时间和date(如果7AM或更早,然后开夜class从昨天,如果7AM或更晚,然后打开今天的Excel如果晚上3点或更晚的时间开放,那么正确的一天)。 excel文件的命名是这样的: 25.11.2015.xlsx 。 文件夹的层次结构是:

X:\ Shifts(这里是VBS脚本)\ 2015 \ 11 \ 25.11.2015.xlsx

这是我到目前为止的代码。 这是一个batch file,虽然我读了批处理不可能的地方,但我最好再问一遍。 我只是不知道应该在哪里添加代码来打开特定工作表。 *我没有自己编写所有的东西,我search了很多东西,并把特定的部分放在一起。

 @echo off set day=-1 echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" del "%temp%\%~n0.vbs" set "YYYY=%result:~0,4%" set "MM=%result:~4,2%" set "DD=%result:~6,2%" set "data=%dd%.%mm%.%yyyy%" IF %time:~0,2% GTR 7 ( START "" "Path to file\%DATE:~6,4%\%DATE:~3,2%\%DATE%.xlsm" ) IF %time:~0,2%== 7 ( START "" "Path to file\%DATE:~6,4%\%DATE:~3,2%\%DATE%.xlsm" ) IF %time:~0,2% LSS 7 ( START "" "Path to file\%DATE:~6,4%\%DATE:~3,2%\%data%.xlsm" ) 

使用vbs ,您可以控制Excel以显示正确的工作表。
不知道你可以做一个批处理脚本,但你可以执行.vbs
.bat相同

将以下内容保存到.vbs
应该工作,或者接近…

 'Folder - x:\shifts\year\month\dd.mm.yyyy.xlsx '3 sheets - early, late, night 'Check date/time, open Excel file, set active sheet 'If 7AM or earlier open night shift from yesterday 'If 7AM or later open early shift for today 'If 3PM or later open late shift for today Dim path 'file path Dim today 'current date Dim name 'sheet name Dim xclApp 'Excel application Dim xclWbk 'Excel workbook 'set current date today = Now() name = "" 'check shift, set sheet name If Hour(today) < 7 Then 'modify date today = DateAdd("d", -1, today) name = "night" Else If Hour(today) < 15 Then name = "early" Else name = "late" End If End If 'set file path path = "X:\Shifts\" & Year(today) & "\" & Month(today) & "\" & Day(today) & _ "." & Month(today) & "." & Year(today) & ".xlsx" Set xclApp = CreateObject("Excel.Application") xclApp.Visible = True Set xclWbk = xclApp.Workbooks.Open(path) xclWbk.Sheets(name).Activate Set xclApp = Nothing Set xclWbk = Nothing