这一个月正确的使用和替代品,如果有的话
下面的代码在我input月份名称时起作用。 但是,我需要它来find当前月份的文件夹,避免每个月更新代码。 我对ThisMonth的使用在另一个macros中很好用,但是在这里不起作用。 我相信我错误地运用它。 任何洞察力是赞赏。
Sub JoinPathParts() Dim pathParts(1 To 5) As String Dim path As String pathParts(1) = "H:" pathParts(2) = "Rejects" pathParts(3) = "2017" pathParts(4) = "" & ThisMonth & "\""" pathParts(5) = "FileName*.xlsx" path = Join(pathParts, "\") Application.Workbooks.Open (path) Call AddAsLastWorksheet End Sub
ThisMonth
可能是你的其他macros定义的一个函数或variables,它不能处理这个代码的原因是,它是未定义的。
添加这个在每个模块的顶部:
Option Explicit
你的代码停止编译,VBA抱怨ThisMonth
未定义。
我们不知道ThisMonth
是如何在你的其他macros中实现的,但这可能是这样的:
pathParts(4) = "" & MonthName(Month(Now)) & "\"""
可能更可靠的方法是使用VBA.Strings
模块中的Format
函数来获取格式化的月份名称 – 正如本答案所示。
这个月不是 VB常量。 你需要定义它。
既然你写的用Month Name代替ThisMonth,我build议在你的代码的最上面,尝试添加这些代码:
Dim ThisMonth as String ThisMonth = Format(Date, "mmm")
编辑:鉴于@MatsMug关于国际意识的评论,如果这是一个问题,你可以使用类似于:
Dim ThisMonth As String, M As String M = Application.International(xlMonthCode) M = M & M & M ThisMonth = Format(Date, M)