这一个月正确的使用和替代品,如果有的话

下面的代码在我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)