Oprette mere end een tabel i Word
Jeg har et problem som sikkert er nemt at løse (når man ved hvordan).Jeg kalder Word fra SPSS og skriver noget output til det nyåbnede worddokument. Output består af en række tabeller med indhold. Men efter jeg har åbnet første tabel og fyldt den med tekst/tal - så kan jeg ikke finde ud af at lave en blank linje og derefter åbne tabel nummer 2.
Første kald på WordApp.ActiveDocument.Tables.Add(Range:=WordApp.ActiveDocument.Range, NumRows:=(intRow), NumColumns:=(intCol), DefaultTableBehavior:=wdWord9TableBehavior)
fungerer fint. Men hvordan vælger jeg placeringen af tabel 2? Har prøvet med WordApp.ActiveDocument.GoTo what:=wdGoToLine, which:=Last inden Tables.Add kaldes igen, men uden held.
Hele koden er:
Sub Main
'On Error GoTo Oopps
Set Wordapp=GetObject(,"Word.Application")
WordApp.Documents.Add("C:\test.doc")
' Declare variables and get the designated output items object:
Dim objOutputDcc As ISpssOutputDoc
Dim objOutputItems As ISpssItems
Set objOutputDoc = objSpssApp.GetDesignatedOutputDoc
Set objOutputItems = objOutputDoc.Items
' Read the number of items and get the first pivot table
Dim objOutputItem As ISpssItem
Dim objPivotTable As PivotTable
Dim objRowLabels As ISpssLabels
Dim intCount As Integer, I As Integer
Dim objDataCells As ISpssDataCells
Dim lngNumRows As Long
Dim lngNumColumns As Long
WordApp.Visible = True
intCount = objOutputItems.Count
For I = 0 To intCount - 1
Set objOutputItem = objOutputItems.GetItem (I)
If objOutputItem.SPSSType = SPSSPivot Then
Set objPivotTable = objOutputItem.Activate()
Set objRowLabels = objPivotTable.RowLabelArray
Set objDataCells = objPivotTable.DataCellArray
intCol = objDataCells.NumColumns
intRow = objDataCells.NumRows
WordApp.ActiveDocument.GoTo what:=wdGoToLine, which:=Last
WordApp.ActiveDocument.Tables.Add(Range:=WordApp.ActiveDocument.Range, NumRows:=(intRow), NumColumns:=(intCol), DefaultTableBehavior:=wdWord9TableBehavior)
For intC = 0 To intCol-1
For intR = 0 To intRow-1
tekst=objDataCells.ValueAt(intR,intC)
If tekst<>"" Then
WordApp.Selection.Tables(1).Cell((intR+1), (intC+1)).Range.InsertAfter tekst
End If
Next
Next
End If
Next
Oopps:
Debug.Print "error " & Err & ": " & Err.Description & ""
End Sub