Excel VBA - "mmmm" 格式的月份

Excel VBA - Month in "mmmm" format

我需要使用 "mmmm" 格式的当前和上个月,我找到的最佳解决方案是 MonthName(Month(Date))

然而,Excel 一直给我:

Compile Error: Object Required

这让我发疯。我是 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

小写 'm' 是分钟。大写 'M' 表示月份。

您不需要使用 Set。只有在将 Object 传递给变量时才使用它。
此行 returns 是 String 而不是 Object(例如范围、工作表、图表等)

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

所以要将它传递给 CurrentMonth 变量,只需使用 = 符号赋值即可:

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