更改 Excel VBA 函数内的单元格格式

问题描述 投票:0回答:3

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

如何将单元格格式更改为日期(短日期是首选)

这是我的代码

Function ggg(rng As Range) As Date
ggg = rng.value - 466699
ggg = CDate(ggg)
End Function
vba excel
3个回答
0
投票

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

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

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

看看它是否对您的事业有帮助!


0
投票

shrivallabha.redij,谢谢你!!!

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Formula Like "=ggg(*" Then
        Target.NumberFormat = "m/d/yyyy"
    End If
End Sub

也有效。

© www.soinside.com 2019 - 2024. All rights reserved.