excel - MS Access Nz() 函数无法在 MS Excel 中识别

标签 excel ms-access vba

我正在尝试在 MS Access 中编写一个表达式,该表达式返回一个文本字符串 "New Policy",在返回一个错误。
当我将数据从 Access 导出到 Excel 时,它告诉我无法识别 Nz()
这个功能有替代品吗?我的 Access 表达式如下:

Nz(IIf([Policy Status]=[Input - WFAC Previous Day]![Policy Status 1],"Remains " & [Policy Status],[Input - WFAC Previous Day]![Policy Status 1] & " to " & [Policy Status]), "New Policy")

最佳答案

Nz 是在 Microsoft Access 类型库中定义的,当您的宿主应用程序是 Access 时会自动引用它。

如果您在 Excel 项目中添加对 Access 类型库的引用,您应该能够使用 Nz...但是如果未安装 Access,您的 Excel 项目将无法运行,这……很奇怪而且相当笨拙。

Nz 是做什么的?看起来像某种 Coalesce 函数,您可以轻松实现并根据需要进行自定义。是这样的吗?

Public Function Coalesce(ByVal value As Variant, Optional ByVal value_when_null As Variant = 0) As Variant

    Dim return_value As Variant
    On Error Resume Next 'supress error handling

    If IsEmpty(value) Or IsNull(value) Or (VarType(value) = vbString And value = vbNullString) Then
        return_value = value_when_null
    Else
        return_value = value
    End If

    Err.Clear 'clear any errors that might have occurred
    On Error GoTo 0 'reinstate error handling

    Coalesce = return_value

End Function

关于excel - MS Access Nz() 函数无法在 MS Excel 中识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53766713/

相关文章:

sql - 选择第一个匹配行

excel - Excel 下拉框是否可以像带有用于多项选择的复选框的列表框一样?

security - 经典 ASP SQL 注入(inject)保护

ms-access - 如何确定 MS Access 安装路径

java - 使用 Apache POI 在 Excel 中更改小数点和千位分隔符

mysql - 如何将大型Excel文件表导入MySQL数据库表

vba - 删除命名范围中的重复项

VBA : Using a function to set a new sheet

excel - VBA,对于每个应用程序匹配,需要对象

vba - 在 VBA 中使用 WinAPI 创建的列表框不起作用