ActiveX текстовое поле отображает даты в виде числа - PullRequest
0 голосов
/ 04 марта 2019

У меня есть текстовое поле ActiveX и связанная ячейка I21.I21 установлен в качестве даты, но в текстовом поле ActiveX я вижу номер.Что здесь не так?

enter image description here

Вот свойства:

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Предложение Вариатуса работает отлично.Однако я попробовал другой подход и решил использовать этот.Первоначально опубликовано здесь

Вставьте это в стандартный модуль:

Public Function FMT$(ByVal Value, ByVal strFormat)
    FMT = VBA.Format$(Value, strFormat)
End Function

Затем преобразуйте дату, используя эту формулу, например, в ячейку I22: =FMT(I21;"dd.mm.yyyy")

Наконец-то свяжите текстовое поле ActiveX с I22.Ваша дата должна отображаться правильно.

0 голосов
/ 04 марта 2019

Я не нашел способа скопировать формат из связанной ячейки в элемент управления или напрямую установить формат для элемента управления.Поэтому единственный способ понять это - использовать событие «Изменение листа», чтобы заполнить элемент управления TextBox значением на рабочем листе.К сожалению, это улица с односторонним движением.

Вставьте приведенный ниже код в модуль кода рабочего листа, на котором у вас есть текстовое поле.Оставьте свойство LinkedCell элемента управления ActiveX пустым.

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim LinkedCell As Range

    Set LinkedCell = Range("I21")
    With Target
        If .Address = LinkedCell.Address Then
            Me.TextBox1.Value = Format(LinkedCell.Value, "dd mmm yyyy")
        End If
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...