我的Lotus代理会根据邮件目的地分离文件并将它们放入不同的文件夹中。 实际上,它运行良好,但只使用SendTo :
found = False
If IsArray(curdoc.GetItemValue("SendTo")) Then
ForAll elt In curdoc.GetItemValue("SendTo")
idxFolder = 0
ForAll dest In destinations
If InStr(1,CStr(elt),CStr(dest),5) <> 0 Then
found = True
Exit ForAll
End If
idxFolder = idxFolder + 1
End ForAll
End ForAll
If found Then
Exit ForAll
End If
End If
我的问题:现在我希望它也适用于CC和BCC中的目的地!
我知道我可以通过重复3次以上代码来实现,但这不是理想的解决方案
答案 0 :(得分:1)
您只需要构建一个包含所有值的数组:
Dim varAddresses as Variant
varAddresses = curdoc.GetItemValue("SendTo")
varAddresses = ArrayUnique( Fulltrim( ArrayAppend( varAdresses, curdoc.GetItemValue("CopyTo") ) ) )
varAddresses = ArrayUnique( Fulltrim( ArrayAppend( varAdresses, curdoc.GetItemValue("BlindCopyTo") ) ) )
Forall elt in varAddresses
'Your code comes here
End Forall
答案 1 :(得分:0)
回答这些问题的最快方法是选择一个文档并打开属性。确保填写相关字段。
您可以通过右键单击文档并选择“文档属性”来执行此操作。
完成后,您可以看到您要查找的相关字段。
在你的情况下。
对于重复代码,使用方法(fieldName as String)将其放入SUB / Function中。然后将“SendTo”更改为fieldName。
示例:
Function checkField (fieldName as String) as Boolean
found = False
If IsArray(curdoc.GetItemValue(fieldName)) Then
ForAll elt In curdoc.GetItemValue(fieldName)
idxFolder = 0
ForAll dest In destinations
If InStr(1,CStr(elt),CStr(dest),5) <> 0 Then
found = True
Exit ForAll
End If
idxFolder = idxFolder + 1
End ForAll
End ForAll
End If
checkField = found
End Function