如果单元格为空或日期格式无效,则获取当前时间

时间:2018-07-16 09:37:56

标签: excel vba function

我想获取当前时间,但是每当我关闭或打开excel文件时都不会更新。如果调用该函数的当前单元格不是有效日期,则调用等于NOW的函数。

Function NowModified() As String

Dim str As String, rng As Range

str = Application.Caller.Address

Set rng = Range(str)

If rng.Value = 0 Or rng.Value = "" Then 'I tried If Not(IsDate(rng)) but still not working
NowModified = Now
Exit Function
End If

End Function

1 个答案:

答案 0 :(得分:0)

如果您想获得一些时间戳,这是一个答案:

Function NowModified() As String

    If ActiveCell = 0 Or ActiveCell = "" Then
        NowModified = Now
    End If

End Function

用户定义的功能UDF 有一些限制。其中之一是它不能引用ActiveCell。因此,即使是很小的东西也不能像UDF一样起作用:

Function NowModified() As String    
    NowModified = ActiveCell.Address    
End Function

有以下限制:

  

由工作表单元格中的公式调用的用户定义函数不能更改Microsoft Excel的环境。这意味着该函数无法执行以下任何操作:

     
      
  • 插入,删除或格式化电子表格中的单元格。
  •   
  • 更改另一个单元格的值。
  •   
  • 移动,重命名,删除工作表或将其添加到工作簿。
  •   
  • 更改任何环境选项,例如计算模式或屏幕视图。
  •   
  • 为工作簿添加名称。
  •   
  • 设置属性或执行大多数方法。
  •   

Description of limitations UDF