我添加了一个手工触发的代理,打印选中的业务中的内容。可是只能在调试打开的时候才能执行,并且一点错都没有;把调试关了,正常执行缺报“ Object variable not set ”的错误.代码贴出来,请高手指教。
Sub Initialize
Dim ws As New NotesUIWorkspace
Dim ss As New NotesSession
Dim uivw As NotesUIView
Dim docs As NotesDocumentCollection
Dim oName As NotesName
Set oName = New NotesName(ss.UserName)
Set uivw = ws.CurrentView
Set docs=uivw.Documents
If docs.Count=0 Then
Msgbox "请您选择要打印的档案! ",48
Exit Sub
End If
sDocUNID = " "
Dim doc As NotesDocument
Set doc = docs.GetFirstDocument()
While Not(doc Is Nothing)
sDocUNID = strConnect(sDocUNID,doc.NoteID, "; ") 'strConnect()函数是把参数2中的字符串加到参数1的字符串中,并用参数三的字符搁开,和join()差不多
Set doc = docs.GetNextDocument(doc)
Wend
aDocUNID = Split(sDocUNID, "; ")
Forall nid In aDocUNID
Set doc = ws.CurrentDatabase.Database.GetDocumentByID(nid)
Call writeOcertno(doc) '打印程序,该程序不会有错
End Forall
End Sub
------解决方案--------------------
在代理里面增加出错陷阱,看看到底那行出错了。。。
Object variable not set 这个是常见错误。。。
好像Set uivw = ws.CurrentView 这句有问题。
------解决方案--------------------
说说你分别是怎么执行代理的?什么叫调试,什么叫正式执行?
这个要看你执行环境的,因为用了ui类