Excel VBA Userform IIf (IsDate) не сохраняет пробел

Утром все, у меня есть рабочая книга с несколькими UserForms, на которых допускается запись нескольких типов данных, включая текст, число и множество полей даты. Кажется, что все работает хорошо, за исключением случаев, когда пользователь хочет удалить дату, используя соответствующую пользовательскую форму, она не перезаписывает значение на листе. Ниже приведен код, который я использую, чтобы проверить, является ли значение в пользовательской форме датой, а затем заполняет рабочий лист, но ничего не делает. Любая помощь оценивается.

ws.Cells(lastRow, txtCollectionDate.Tag).Value = IIf(IsDate(txtCollectionDate), CDate(txtCollectionDate), "") 

Обновление: txtCollectionDate является текстовым полем, это значение первоначально было 09/01/2016, но пользователь хочет удалить его, поскольку он был введен с ошибкой. Пользователь должен иметь возможность выделить значение, нажать «Удалить» (клавиатура), а затем сохранить.

Кажется, что с IIf тогда часть будет обработана, даже если часть критерия неверна. Это приводит к ошибке несоответствия типа 13 с CDate("") .

Итак, вы должны сделать:

 If IsDate(txtCollectionDate) Then ws.Cells(lastRow, txtCollectionDate.Tag).Value = CDate(txtCollectionDate) Else ws.Cells(lastRow, txtCollectionDate.Tag).Value = "" End If 

Редактировать:

Удалить «Кажется». Это поведение документировано: https://msdn.microsoft.com/en-us/library/office/gg264412.aspx

  • Как прокрутить флажки на динамически созданной пользовательской форме?
  • Excel VBA - Как открыть Userform с использованием переменной в имени
  • Мой ComboBox не отображает значения, которые я добавил в VBA
  • Link Combobox с текстовым полем в vba Excel
  • Добавить правила IF с использованием пользовательской формы в excel vba
  • Вставьте данные листа в combobox userform без дублирования - Excel Vba
  • Автоматическое открытие нескольких пользовательских форм
  • Excel - VBA: передать переменную от Sub до Userform
  • Как заставить пользователя выбрать параметр, используя фреймы, excel userform
  • Заполнение Combobox на второй пользовательской форме
  • Функция не записывает в требуемую ячейку следующий расчет массива; Пользовательские формы excel vba
  • Interesting Posts
    Давайте будем гением компьютера.