2016-03-23 64 views
0

我有一個VBA宏,它從LotusNotes應用程序獲取一些數據。它大部分工作正常,但我沒有得到解決一個項目中元素的數量。通過VBA計算LotusNote項目

例如:

Dim DomSession As Object 
Dim DomDir As NotesDatabase 
Dim DomContacts As NotesView 
Dim DomDoc As NotesDocument 

While Not (DomDoc Is Nothing) 
GetItemValue("name of item")(0) 
Set DomDoc = DomContacts.GetNextDocument(DomDoc) 
Wend 

GetItemValue( 「項目名稱」)(0)獲取我的項目的第一個或唯一值。但是,如果項目中有更多的元素髮生,比我不知道有多少元素。循環索引(i)會導致VBA中的運行時錯誤,因爲它循環直到列表出界。

在LotusScript本身中有@Count應該做我想做的,但是這不能通過VBA工作。有什麼建議麼?

+0

在黑暗中拍攝。我和Lotusscript一起工作已經很久了。嘗試像這樣的'MyAr = doc.GetItemValue(「物品的名稱」)'然後'Ubound(MyAr)'得到它的數量? –

+0

謝謝!這似乎確實有用。 – Ocmer

+0

實際上,它是Ubound(MyAr)+1,因爲數組元素1位於索引0處。 –

回答

2

GetitemValue返回一個包含項目中所有值的數組。

正如在評論中指出您只需通過使用UBOUND結果賦值給變量和循環:

Dim DomSession As Object 
Dim DomDir As NotesDatabase 
Dim DomContacts As NotesView 
Dim DomDoc As NotesDocument 
Dim varValues 

While Not (DomDoc Is Nothing) 
    varValues = DomDoc.GetItemValue("name of item") 
    max = ubound(varValues) 
    For i = 0 to max 
     yourValue = varValues(i) 
     '- do whatever you want with values 
    Next 
    Set DomDoc = DomContacts.GetNextDocument(DomDoc) 
Wend 
+0

感謝您的解決方案。 – Ocmer