2016-10-06 4 views
1

В Excel 2010 все работает отлично, но в Excel 2013 происходит ошибка «Тип несоответствия». Проблема связана со следующими кодонами (разные варианты, которые я пробовал).Несоответствие типа в Excel 2013

startDate = startDateCell.Value 
startDate = CDate(startDateCell.Value) 
startDate = CDate(Format(startDateCell.Value, "short date")) 

Содержание startDateCell является f.e. строка, как «12.06.2016»

STARTDATE является дата переменной

+1

Вы пробовали 'DATEVALUE()'? –

+2

Похоже, что ваши региональные настройки на машине с 2013 года не распознают даты с разделителем полной остановки. – Rory

+0

Региональные настройки на машине установлены в ЕС, и дата находится в формате ЕС. –

ответ

1

ли США формат даты? Я предполагаю, что не основывается на времени публикации. Проблема может заключаться в том, что vba распознает ее как дату даты и интерпретирует 13/1/2016 как 1/13/2016 (используя британскую логику), ссылаясь на 13-й месяц, что дает ошибку.

Function Convertings() As String 
    Convertings = Format(DateValue("13/1/2016"), "mm/dd/yyyy") 
End Function 
+0

Нет, дата в формате ЕС –

+0

Это моя точка зрения, я думаю, что она должна быть в формате США, поэтому в настоящее время она находится на листе как ddmmyyyy, vba смотрит на нее и интерпретирует ее как mmddyyyy, так как это американец. Вы можете проверить это с помощью datepart, если вы можете заставить любые ценности работать вообще? – User632716

Смежные вопросы