Утро все, У меня есть рабочая книга с несколькими пользовательскими формами, на которых разрешено вхождение нескольких типов данных, включая текст, число и много поля даты. Кажется, что все работает хорошо, за исключением случаев, когда пользователь хочет удалить дату, используя соответствующую пользовательскую форму, она не перезаписывает значение на листе. Ниже приведен код, который я использую, чтобы проверить, является ли значение в пользовательской форме датой, а затем заполняет рабочий лист, но ничего не делает. Любая помощь оценивается.Excel VBA Userform IIf (IsDate) не сохраняет пробел
ws.Cells(lastRow, txtCollectionDate.Tag).Value = IIf(IsDate(txtCollectionDate), CDate(txtCollectionDate), "")
Update: txtCollectionDate это текстовое поле, это значение изначально было 09/01/2016, но пользователь хочет удалить это, как оно было введено в заблуждении. Пользователь должен иметь возможность выделить значение, нажать «Удалить» (клавиатура), а затем сохранить.
Просьба отображать содержимое 'txtCollectionDate', если он ничего не делает, и указать, какие у вас настройки даты по умолчанию для короткой даты в Excel и в вашей операционной системе. –
Спасибо Axel, обновил главный вопрос. Настройки даты по умолчанию в Excel/OS равны dd/mm/yyyy (стиль в Великобритании) –
'он не перезаписывает значение на листе' - означает ли это, что это делает _nothing_? или что он заменяет значение пустым? –