excel - 从用户定义函数返回 Empty 实际上返回 0

标签 excel excel-formula string vba

我需要用用户函数的结果填充单元格。如果函数的结果不为零,则应简单地用函数的结果填充单元格;到目前为止一切顺利。

但如果结果为零,我希望单元格为空。

所以我写了这个用户定义的函数:

Function MyTestFunction(n As Integer) As Integer
    Dim result As Integer

    result = n * 2

    If result = 0 Then
        MyTestFunction = Empty
    Else
        MyTestFunction = result
    End If
End Function

该函数没有真正的目的,只是为了调查这个问题。

Excel表格如下:

enter image description here

单元格 A1 到 A3 刚刚输入数据,单元格 B1 到 B3 包含:

  • B1:=MyTestFunction(A1)
  • B2:=MyTestFunction(A2)
  • B3:=MyTestFunction(A3)

现在为什么单元格 B3 显示 0 而不是空?

最佳答案

您已经定义了您的函数,以便始终返回一个整数,并且它确实如此。空值不是整数。您可以按如下方式修改您的函数:

Function MyTestFunction(n As Integer) As Variant
    Dim result As Integer

    result = n * 2

    If result = 0 Then
        MyTestFunction = ""
    Else
        MyTestFunction = result
    End If
End Function

关于excel - 从用户定义函数返回 Empty 实际上返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27196512/

相关文章:

r - 获取对角线对称位置的最大值

python - 强制 python 脚本不等待 vba 宏终止

excel - 链接到基于另一个单元格的外部工作簿

excel - 如何在 Countifs 中排除空字符串

excel - 如何使用 msi 安装程序部署 VBA Excel 加载项 (foo.xlam)?

php - 从 Excel 电子表格导入高级表单字段

vba - Excel VBA 公式德语/法语/意大利语/俄语/荷兰语/外国函数

javascript - 在javascript中获取引号内的字符串

java - 安装向导出现错误编译错误 - 找不到符号

r - GNU R : How to remove repeated characters at the beginning and end of every word of a string?