[英]Excel VBA Month function throwing type mismatch
這是我在A欄中的數據:
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中直接使用它而不是VBA腳本時,Month函數在此設置中正常工作。
2)有沒有更好的方法將文本解析為日期? 日期字符串格式超出excel考慮日期的原因,這就是我發布多個中頻的原因。
VBA中的Month()
函數采用日期並返回數字(整數)月份(例如,如果您通過它,則為1月1日下午4:30)。 您正在嘗試將類型不匹配,因為當它實際上正在查找具有日期類型而不是字符串的參數時,您嘗試將月份縮寫(例如“SEP”)傳遞給Month()函數。
您可以使用CDate()
函數將值轉換為日期:
MsgBox CDate("2013-SEP-23 08:58:35")
顯示“9/23/2013 8:58:35 AM”
A列的單元格格式是什么
如果它是一般格式意味着這將工作
k =“2013-SEP-04 10:51:42”l2 =月(DateValue(格式(k,“YYYY-MMMM-dd”)))
如果不是意味着再次使用excel中的格式與我聯系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.