[英]MS Access Nz() Function not Recognised in MS Excel
我試圖在MS Access中編寫一個表達式,該表達式在返回錯誤后在Iif()
語句中返回文本字符串"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
您不需要為此:
IIf(IsNull([Policy Status]), "New Policy",
IIf([Policy Status] & "" = [Input - WFAC Previous Day]![Policy Status 1],
"Remains " & [Policy Status],
[Input - WFAC Previous Day]![Policy Status 1] & " to " & [Policy Status]))
如果您使用的是VBA,則可以添加對MS Access庫的引用,例如“ Microsoft Access 14.0對象庫。然后Nz
函數作為Access.Nz(value, "New Policy")
可用。您甚至可以創建一個用於Excel電子表格的用戶定義函數:
Public Function Nz(Value As Variant, Optional ValueIfNull As Variant = "New Policy") As Variant
Nz = Access.Nz(Value, ValueIfNull)
End Function
希望能有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.