Excel VBA – “mmmm”格式的月份

我需要使用“mmmm”格式的当前和上个月,我发现最好的解决scheme是MonthName(Month(Date))

但是,Excel不断给我:

编译错误:对象必需

这让我疯狂。 我对VBA很新,所以任何人都可以解释我在这里做错了什么?

 Sub test() Dim CurrentMonth As Variant Dim PreviousMonth As Variant Set CurrentMonth = MonthName(Month(SetupSheet.Range("C9"))) '<-------HERE Set PreviousMonth = MonthName(Month(SetupSheet.Range("C9") - 1)) ... End Sub 

你不需要使用Set 。 只有在将Object传递给variables时才使用它。
这一行返回一个String而不是一个Object (如范围,工作表,图表等)

 MonthName(Month(SetupSheet.Range("C9"))) 'if C9 contains a valid date format 

所以要将它传递给CurrentMonthvariables,只需使用= sign指定它:

 CurrentMonth = MonthName(Month(SetupSheet.Range("C9"))) 

小写字母“m”是分钟。 大写字母“M”表示月份。