我在使用Excel中的VBA中的Format()函數時遇到問題。我不知道問題是什麼。我之前在多個地方使用了Format()函數,並且從來沒有像這樣給出過麻煩。VBA中格式化()函數無法正確格式化日期
對於上下文,讓我簡單解釋一下情況。我有一堆工作表,都以「mmm-yy」格式的月份年份組合(除了「主表格」表格)命名。在下面的功能(簡化爲相關性)中,我的目標是循環顯示每張紙,並以「yyyy」格式顯示它的名稱。如您所見,在第7行中,我使用Format()函數將工作表名稱轉換爲「yyyy」格式。
Function populateYearsCBB()
Dim WS As Worksheet
Dim yyyyName As Integer
For Each WS In ThisWorkbook.Worksheets
If WS.name <> "Main Sheet" Then
'WS.name is therefore a month-year combo of "mmm-yy" format
yyyyName = Format(WS.name, "yyyy") 'LINE 7
MsgBox (yyyyName)
End If
Next
End Function
多一點背景:我的第5張是2016年的前五個月(5月 - 16年4月 - 16月16 ...),其餘12是12個月的2015年( 12月15日,11月15日...)。
當然,當我運行這個函數時,我希望我的消息框的輸出爲:「2016」,「2016」,「2016」,「2016」,「2016」(五個月2016年),然後是「2015年」的12倍。對?
奇怪的是,我收到了17個消息框,都說「2016」。
出於某種原因,第7行上的Format()函數似乎也將2016年的月份讀爲2016年。
我不能爲我的生活找出這裏發生了什麼。有人請幫忙?
在此先感謝!
它解釋了'15'和'16'如天,默認爲2016年一年。對於你的特定格式'「20」&Right(WS.Name,2)'會起作用。 – arcadeprecinct