Excel VBA Userform – Как увеличить / уменьшить дату на один месяц

Используя следующий код, я увеличиваю значение даты, отображаемой в TextBox с помощью SpinButtons.

MainUserForm_Initialize() DateTextBox.Value = Format(Date, "dd-mm-YYYY") ... End Sub 'Add one day when spinning up. Private Sub SpinButtonDate1_SpinUp() With DateTextBox .Value = Format(DateAdd("d", 1, .Value), "dd-mm-yyyy") End With End Sub 'Remove one day when spinning down. Private Sub SpinButtonDate1_SpinDown() With DateTextBox .Value = Format(DateAdd("d", -1, .Value), "dd-mm-yyyy") End With End Sub 

Проблема в том, что если бы я переместился на 11-07-2015, она будет проходить с 12-07-2015 по 06-12-2015 вместо 11-07-2015. Почему это? (У меня такая же проблема при увеличении значения. Даты приведены только в качестве примера.)

У меня есть такая же проблема, если я настрою свой региональный формат для США. Попробуйте это исправление, которое должно работать независимо от ваших региональных настроек:

 'Add one day when spinning up. Private Sub SpinButtonDate1_SpinUp() With DateTextBox .Value = Format(GetDateFromUK(.Value) + 1, "dd-mm-yyyy") End With End Sub 'Remove one day when spinning down. Private Sub SpinButtonDate1_SpinDown() With DateTextBox .Value = Format(GetDateFromUK(.Value) - 1, "dd-mm-yyyy") End With End Sub Function GetDateFromUK(sDate As String, Optional sSeparator As String = "-") As Date Dim vParts vParts = Split(sDate, sSeparator) GetDateFromUK = DateSerial(vParts(2), vParts(1), vParts(0)) End Function 
  • как vlookup элемент в столбце D и получить значение столбца a в пользовательской форме vba?
  • Не удается закрыть пользовательскую форму
  • Определите, какая строка VBA выполняется в настоящий момент для панели выполнения
  • Получить функцию () в качестве элемента управления
  • Добавление серийной коллекции в диаграмму с помощью UserForm (combobox)
  • Добавление прослушивателя событий к нескольким спискам
  • Поддержка, необходимая для программирования vba для всплывающего календаря
  • Скрыть и отобразить определенные строки в зависимости от выбранного номера.
  • Загрузка различных пользовательских форм последовательно
  • Получите данные строки из Sheet1, затем поместите их в другой UserForm
  • Функция не записывает в требуемую ячейку следующий расчет массива; Пользовательские формы excel vba
  • Interesting Posts

    Как перенести набор столбцов и сохранить вывод как CSV

    Условное форматирование VBA, не выделяющее ячейку в определенной ячейке на листе

    Является ли Visual Studio Tools для приложений частью Office 2007?

    Проникновение через все листы, получение ошибки в конце

    Как сохранить несколько миллионов записей из базы данных с помощью VBA?

    Как создать файл excel с автофильтром в первой строке с помощью xlwt?

    R (XLConnect) Объедините весь рабочий лист в один, если размер рабочего листа огромен

    Я хочу сортировать список строк на основе значений соседних ячеек excel

    Как скопировать только первые листы книг в папку в одну книгу Excel

    Фильтровать столбцы столбцов по точкам по дням с помощью VB.NET

    Транзакция Microsoft Excel на основе даты и стоимости ячейки

    Добавление подписи, состоящей из изображений в Outlook, с использованием excel VBA

    VBA Открыть файл Excel – изменить диалоговое окно

    Получить последнюю дату до выбранной даты из ACCESS в Excel

    Создайте макрокоманду повторения excel, пока не будет указано больше текста

    Давайте будем гением компьютера.