我正在使用未处理的文档,以便它只在选定的文档上运行,但在选择后它会在视图中查找列值以将文档导出到 excel。我正在使用下面的代码,它工作正常,但我的第一个文档总是在 excel 表中的所有其他导出文档之后显示在最后。知道可以用代码做什么,以便导出的文档在视图中按顺序完美显示。
看看下面我用来导出的代码——</p>
Sub Initialize
'On Error Goto errhandler
On Error Resume Next
Dim session As New NotesSession
Dim db As NotesDatabase
Dim doccoll As NotesDocumentCollection
Dim view As NotesView
Dim doc As NotesDocument
Dim otherdoc As NotesDocument
Set db = session.CurrentDatabase
Set view = db.GetView("CRMOpenIssue")
Set doccoll=db.UnprocessedDocuments
Set oExcel = CreateObject ( "Excel.Application" )
Set oWorkbook = oExcel.Workbooks.Add
Set oWorkSheet= oWorkbook.Sheets ( 1 )
oWorkSheet.Cells(1,1).value="Quote# "
oWorkSheet.Cells(1,2).value="Quote Line#"
oWorkSheet.Cells(1,3).value="Customer - fab"
oWorkSheet.Cells(1,4).value="OppNum"
oWorkSheet.Cells(1,5).value="OppLine#"
oWorkSheet.Cells(1,6).value="Open Issue#"
oWorkSheet.Cells(1,7).value="Open Issue"
oWorkSheet.Cells(1,8).value="Category"
oWorkSheet.Cells(1,9).value="Due date"
oWorkSheet.Cells(1,10).value="Owner to resolve issue"
'oWorkSheet.Cells(1,11).value="Owner/PME Verify when closed"
oExcel.Worksheets(1).Range("A1:J1").Font.Bold = True
oExcel.columns("A:A").ColumnWidth=15.00
oExcel.columns("B:B").ColumnWidth=8.00
oExcel.columns("C:C").ColumnWidth=15.00
oExcel.columns("D:D").ColumnWidth=10.00
oExcel.columns("E:E").ColumnWidth=8.00
oExcel.columns("F:F").ColumnWidth=8.00
oExcel.columns("G:G").ColumnWidth=30.00
oExcel.columns("H:H").ColumnWidth=30.00
oExcel.columns("I:I").ColumnWidth=15.00
oExcel.columns("J:J").ColumnWidth=15.00
'oExcel.columns("K:K").ColumnWidth=30.00
row% = 1
offset% = 0
lastOffset% = 0
If doccoll.count >1 Then 'if more than one doc selected then confirm
resp = Messagebox("Do you want to export only the " & _
"selected " & doccoll.count & " documents?", 36, "Selected only?" )
Else
Messagebox "Exporting all rows. (To export only selected " & _
"rows tick those required in the left margin first.)"
End If '6= yes
oExcel.visible=True
Dim i As Integer
If resp=6 Then 'selected documents
Set doc = doccoll.GetFirstDocument
While Not doc Is Nothing
If resp=6 Then
'row% = offset% + 2
If y="" Then
row% = row% + 2
Else
row%=row%+y+1
End If
col% = 0 'Reset the Columns
Set otherdoc = view.getnextdocument(doc)
If otherdoc Is Nothing Then
Set otherdoc = view.getprevdocument(doc)
If otherdoc Is Nothing Then
Print " >1 doc should be selected"
End
Else
Set otherdoc = view.getnextdocument(otherdoc)
End If
Else 'got next doc
Set otherdoc = view.getprevdocument(otherdoc)
End If
End If
Forall colval In otherdoc.ColumnValues
col% = col% + 1
If Isarray(colval) Then
''If col%=10 Then ''''''''
columnVal=Fulltrim(colval)
For y = 0 To Ubound(columnVal)
offset% = row% + y +lastOffset%
'offset% = row% + y
oWorkSheet.Cells(offset%,col%).value = columnVal(y)
'i=offset%
Next
Else
oWorkSheet.Cells(row%, col%).value = colval
'offset% = offset% + 1
End If
'''' oWorkSheet.Cells(row%, col%).value = colval '''''
'''''''End If''''''''
End Forall
Set doc = doccoll.GetNextDocument(doc)
Wend
End if