我想檢查是否有變體是LotusScript代理空的,因爲它是邏輯條件的一部分,但是當我嘗試運行錯誤狀態檢查空字符串
對象變量未設置
關於下面的代碼行:
If CStr(contractId(0)) <> "" Then
我已經試過
If IsNull(CStr(contractId(0))) Then
但這也行不通。爲什麼這不工作?
我想檢查是否有變體是LotusScript代理空的,因爲它是邏輯條件的一部分,但是當我嘗試運行錯誤狀態檢查空字符串
對象變量未設置
關於下面的代碼行:
If CStr(contractId(0)) <> "" Then
我已經試過
If IsNull(CStr(contractId(0))) Then
但這也行不通。爲什麼這不工作?
它看起來像您試圖使用速記符號來訪問名爲ContractID的項目,但在某些情況下,itemd不存在於文檔中。 (我猜我們沒有看到實際的文檔參考,因爲您使用的是with
聲明。)
嘗試訪問ContractID(0)之前,請先調用NotesDocument.hasItem(「ContractID」)。使用IE,
If doc.hasItem("ContractID") then
If CStr(contractId(0)) <> "" Then
的一個變體的「空虛」的檢查是:
If Not IsEmpty(contractID) then
'- do your stuff
End If
如果您填寫contractID使用GetItemValue(),那麼你必須寫自己的isEmpty版本,如果所有元素都是空字符串,則認爲變體是空的。下面的函數檢查變量是否真的是空的,甚至可以用作字符串作爲輸入。
Function IsVariantEmpty (varValues As Variant) As Boolean
IsVariantEmpty = True
If Isempty (varValues) Then
Exit Function
End If
If Isscalar (varValues) Then
If Trim$ (Cstr (varValues)) <> "" Then
IsVariantEmpty = False
End If
Exit Function
End If
Forall value In varValues
If Trim$ (Cstr (value)) <> "" Then
IsVariantEmpty = False
Exit Function
End If
End Forall
End Function
這真的很不錯,但如果他實際上通過GetItemValue()加載變體,我仍然會建議他調用HasItem()並在那裏處理它。在我的一些舊的腳本庫中,我有一個名爲GetStringItemValueWithDefault(itemName,defaultValue)的函數,它調用HasItem,並在物品不存在時返回默認值,否則它將調用GetItemValue並返回第0個元素。 –
是的,這是我會做的...... –
不應該是:'CStr(doc.contractId(0))'還是'contractID = doc.contractId'爲工作代碼? –
我假設他使用with語句來避免指定文檔。 –
好的,但是在那種情況下它不會是'.contractId'嗎? ;) –