我正在嘗試MonthName()在 Visual Basic for Excel 2016 中創建該函式的副本(此版本似乎沒有它,我無法控制更新它),這是我的代碼:
Function GetMonthName(ByVal MonthNum As Integer)
Dim MonthNames(13) As String
MonthNames(0) = Null
MonthNames(1) = "January"
MonthNames(2) = "February"
MonthNames(3) = "March"
MonthNames(4) = "April"
MonthNames(5) = "May"
MonthNames(6) = "June"
MonthNames(7) = "July"
MonthNames(8) = "August"
MonthNames(9) = "September"
MonthNames(10) = "October"
MonthNames(11) = "November"
MonthNames(12) = "December"
GetMonthName = MonthNames(MonthNum)
End Function
我確信有更好的方法可以做到這一點,但我對這門語言還不熟悉。無論如何,這行不通。#VALUE!嘗試放入=GetMonthName(11)功能欄作為測驗時出現錯誤(它應該回傳 11 月)。我想知道我做錯了什么。正如我之前所說,我會使用標準庫,但我沒有那么奢侈。
編輯:加上NULL引號修復了它,但我不明白為什么。無論如何,我將其更改為空字串,但我仍然不明白這與它有什么關系。
uj5u.com熱心網友回復:
僅英文解決方案
如果你想用Null你的變數/陣列不能宣告為String因為Null不是字串(也不鑄造成一個字串)。宣告Variant以及函式。
Public Function GetMonthName(ByVal MonthNum As Long) As Variant
Dim MonthNames() As Variant
MonthNames = Array(Null, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
GetMonthName = MonthNames(MonthNum)
End Function
或者使用vbNullString哪個是""
Public Function GetMonthName(ByVal MonthNum As Long) As String
Dim MonthNames() As String
MonthNames = Array(vbNullString, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
GetMonthName = MonthNames(MonthNum)
End Function
多語言替代
請注意,無論用戶在其計算機上使用什么語言,這將始終回傳英文月份名稱。但是您也可以使用以下內容,根據運行它的計算機的語言設定給出月份名稱。
Public Function GetMonthName(ByVal MonthNum As Long) As String
GetMonthName = Format$(DateSerial(Year(Date), MonthNum, 1), "MMMM")
End Function
無 VBA 解決方案(多語言)
對于沒有 VBA 的解決方案,您可以將完整日期寫入單元格并將數字格式設定為MMMM. 這也將顯示該日期的月份名稱。
uj5u.com熱心網友回復:
如果推薦使用 CHOOSE vba 函式。
Function GetMonthName(ByVal MonthNum As Integer)
Dim MonthNames As String
If MonthNum <= 0 Or MonthNum >= 13 Then 'You can return "" value
GetMonthName = "Error" '--You can return "" value
Else
MonthNames = Choose(MonthNum, "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December")
GetMonthName = MonthNames
End If
End Function
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/387559.html
下一篇:查詢以根據時間減去時間選擇行
