【发布时间】:2017-10-27 14:19:42
【问题描述】:
我有一个 .bat 文件,它在我在 cmd 中输入日期后执行一些代码:
test.bat 包含:
- set /P PWeekday=asofdate:
因为我总是进入前一个工作日,所以我想编写一些代码来做到这一点。但是发现作为批处理脚本的一部分非常困难,我读到在 excel 中创建宏并将值传递到命令行以运行批处理脚本要容易得多。所以我就这样做了:
VBA 中的 PWeekday 函数
Public Function PWeekday() As String
Dim offset Day As Integer
If Weekday(Date) = 1 Then ' Monday
offsetDay = 3
End If
PWeekDay = Format(Date - offsetDay, "YYYYMMDD")
End Function
问题:
我必须向批处理文件添加什么,以便在我运行它时,它使用来自 vba 函数的 Pweekday 值而不是我的用户输入?
非常感谢您,任何帮助或建议将不胜感激。
【问题讨论】:
-
您是想处理公共假期/银行假期,还是只想要平淡无奇的工作日?
-
普通工作日就足够了,上面的 vba sn-p 可以完成这项工作,但我只是不知道如何将其合并到批处理中。谢谢
-
您可能需要考虑使用 VBScript 而不是 VBA。 VBA 托管在一个host 应用程序中;如果不加载主机 AFAIK,您将无法调用任何 VBA。
-
我不确定您的意思,您能否就我目前在上面的内容提出建议?我必须用我的函数创建一个 .vbs 文件,然后在我的 .bat 文件中指定文件的路径吗?谢谢
标签: windows vba excel batch-file cmd