ActiveX文本框将日期显示为数字

时间:2019-03-04 07:20:59

标签: excel

我有ActiveX文本框和链接单元格为I21。 I21设置为日期,但是在ActiveX文本框中看到数字。怎么了?

enter image description here

以下是属性:

enter image description here

2 个答案:

答案 0 :(得分:1)

我找不到将格式从链接的单元格复制到控件的方法,也没有直接为控件设置格式的方法。因此,我唯一能想到的方法是使用Worksheet Change事件来使用工作表上的值填充TextBox控件。不幸的是,这是一条单向街。

将以下代码粘贴到具有文本框的工作表的代码模块中。将ActiveX控件的LinkedCell属性保留为空白。

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

答案 1 :(得分:0)

Variatus的建议效果很好。但是,我尝试了另一种方法,并决定使用此方法。最初发布为here

将其插入标准模块:

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

然后通过在单元格I22中使用以下公式转换日期:=FMT(I21;"dd.mm.yyyy")

最后将ActiveX文本框链接到I22。您的日期应该以正确的方式显示。