如何使用数组函数从vba excel中的数字创建序列月?

Ahm*_*nal 3 excel vba excel-vba

我想制作一些数组函数来帮助我创建报告,假设我有数字= 4然后我打算让它成为1,2,3,4然后最后这些数字将被转换为"1月","2月" ,"三月四月".我试图创建这个功能,但没有任何作用.

Function numtomonth(num As Integer)
r As Long
a As Integer
h As Long

For a = 1 To num
r(a) = a
If r = 1 Then r = "January"
If r = 2 Then r = "February"
If r = 3 Then r = "March"
If r = 4 Then r = "April"
If r = 5 Then r = "May"
If r = 6 Then r = "June"
If r = 7 Then r = "July"
If r = 8 Then r = "August"
If r = 9 Then r = "September"
If r = 10 Then r = "October"
If r = 11 Then r = "November"
else r="December"
end IF
Next a
h = r

End Function
Run Code Online (Sandbox Code Playgroud)

如果可以帮助我,我将不胜感激.谢谢

A.S*_*S.H 5

您已经MonthName在VBA中使用了该功能.

如果您有理由创建自己的数组,请尝试以下方法:

Function numToMonthArray(ByVal num As Integer) As String()
    ReDim ret(1 To num) As String
    For num = 1 to num
        ret(num) = MonthName(num)
    Next
    numToMonthArray = ret
End Function
Run Code Online (Sandbox Code Playgroud)

此外,MonthName还有一个可选的布尔参数Abbreviate来获取名称的缩写; 即

ret(num) = MonthName(num, True)
Run Code Online (Sandbox Code Playgroud)

会得到你"Jan","Feb"等...

  • 该死的,你打败了我:) (2认同)
  • 我也接近发帖了 (2认同)