更改excel VBA

时间:2018-01-10 08:23:34

标签: excel vba excel-vba

我在excel vba中编写了一个函数。函数的返回值是日期,但函数只返回单元格中日期的值

如何更改单元格格式到日期(首选短日期)

这是我的代码

Function ggg(rng As Range) As Date
ggg = rng.value - 466699
ggg = CDate(ggg)
End Function

2 个答案:

答案 0 :(得分:0)

您无法使用该功能更改单元格的格式。您需要一个子程序或返回字符串的函数。例如:

Function ggg(rng As Range) As String
    ggg = Format(rng.Value, "yyyy-mm-dd")
End Function

答案 1 :(得分:0)

右键单击工作表选项卡,然后选择"查看代码"。粘贴以下提供的代码。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cel As Range
    For Each cel In Target.Cells
        If cel.HasFormula And (InStr(1, cel.Formula, "=ggg(", vbTextCompare) = 1) Then
            cel.NumberFormat = "dd-mm-yyyy"
        End If
    Next cel
End Sub

看看它是否有助于你的事业!