這是我在A列中的數據:Excel的VBA月功能投擲類型不匹配
2013-SEP-04 10:51:42
2013-OCT-23 08:58:35
2013-OCT-23 08:58:35
2013-SEP-23 08:58:35
2013-OCT-23 08:58:35
2013-OCT-23 08:58:35
2013-SEP-23 08:58:35
這裏是我的代碼:
Sub getMonthNumber()
'
' getMonthNumber()
'
'
Dim rowsMonth As Long
Dim todaysMonth As Integer
Dim todaysMonthDate As Date
Dim column As Range, cell As Range
Set column = Range("A1:A" & ActiveSheet.UsedRange.Rows.Count)
inactiveStaffConnected = 0
todaysMonth = Month(Date) - 1
rowsMonth = 0
For Each cell In column
rowsMonth = Month(Mid(cell.Value, 10, 2) & Mid(cell.Value, 6, 3) & Mid(cell.Value, 1, 4))
Next
End Sub
1)爲什麼不匹配?當在Excel中直接使用它時,Month函數在此設置中工作正常,而不是VBA腳本。
2)有沒有更好的方法來解析文本到日期?日期字符串的格式太不符合excel認爲日期的原因,這就是我發佈多箇中介的原因。
清楚說明,簡潔的解決方案。如果OP的格式與他的所有作品一致,我也會使用CDate。 'MsgBox Month(CDate(「2013-SEP-23 08:58:35」))'返回9,這足以滿足OP的需求。 – Manhattan
@ roryap - 謝謝,這個工程。我沒有給月份整個字符串的價值,我使用MID函數將價值分解爲日,月和年。無論如何,你的解決方案更好,更易於閱讀,非常棒。謝謝。 –