簡體   English   中英

Excel VBA月份函數拋出類型不匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM