2017-02-08 5 views
1

У меня есть следующий код. Но это дает мне ошибку несоответствия типа на Excel 2013, но отлично работает в Excel 2010.Ошибка несоответствия типа - Excel VBA

For Each dateRow In ThisWorkbook.Sheets(1).Range("G8:G153").Cells 
    cEndDate = DateValue(dateRow) 
    dateArray = Split(cEndDate , "-") 
    Day = CInt(dateArray(0)) 'I get the error here 
    '<- more code -> 
Next 

Это нормально работает без ошибок в Excel 2010.

+0

Использовать 'Debug.Print dateArray (0)' строка перед ошибкой. – R3uK

+0

@ R3uk это говорит '' 31 "' –

ответ

2

Вы не должны использовать Day в качестве переменной, потому что это ключевое слово (на самом деле функция!)

И еще более, это функция, которую вы должны использовать, а не изобретать колесо! ;)

Dim vDay as Integer 
Dim vMonth as Integer 
Dim vYear as Integer 
Dim dateRow as Range 
Dim cEndDate as Date 

For Each dateRow In ThisWorkbook.Sheets(1).Range("G8:G153").Cells 
    cEndDate = DateValue(dateRow.Value) 
    vDay = Day(cEndDate) 
    vMonth = Month(cEndDate) 
    vYear = Year(cEndDate) 


    '<- more code -> 
Next dateRow 
Смежные вопросы