Avatar billede henrik1975 Nybegynder
29. december 2005 - 12:34 Der er 6 kommentarer og
1 løsning

Tabeller i Word

Jeg er ved at skrive en vb-makro til SPSS (statistik-program). Jeg kan fint åbne word med min kode og skrive indholdet fra SPSS-tabellerne til det ny-oprettede worddokument, men jeg vil gerne organisere indholdet i nogle tabeller. Men hvis jeg forsøger at oprette en tabel med nedenstående kode - så får jeg en fejl.

Set objRange = WordApp.Range
WordApp.Selection.Tables.Add(Range:=objRange, NumRows:=3, NumColumns:=4)

Hele koden til mit project er som følger:

Sub Main
On Error GoTo Oopps
Set Wordapp=GetObject(,"Word.Application")

WordApp.Documents.Add("K:\Kontoret\Referencedatabase\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

'Set objRange = WordApp.Range
'WordApp.Selection.Tables.Add(Range:=objRange, NumRows:=3, NumColumns:=4)

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.Visible = True
    WordApp.Selection.TypeText("Tabel: " & I)
    WordApp.Selection.TypeParagraph()

        For intC = 0 To intCol - 1
        For intR = 0 To intRow - 1
            tekst=objDataCells.ValueAt(intR,intC)
              WordApp.Selection.TypeText("Content:" & tekst & vbLf)
        Next
        Next
    End If

Next


Oopps:
Debug.Print "error " & Err & ": " & Err.Description & ""

End Sub
Avatar billede kedde65 Praktikant
29. december 2005 - 12:37 #1
Hej

hvad fejl får du og hvad linie?

/Christian
ck@officekonsulenterne.dk
Avatar billede henrik1975 Nybegynder
29. december 2005 - 12:47 #2
Set objRange = WordApp.Range

giver

(10091) activeX automation: no such property or method
Avatar billede kedde65 Praktikant
29. december 2005 - 12:51 #3
Det er fordi Range property ligger på dokumentet og ikke på Application objektet...


/Christian
Avatar billede henrik1975 Nybegynder
29. december 2005 - 12:56 #4
Hvordan fanger jeg den?

Noget med Set objRange = Activedocument.Range eller noget i den retning?

Mvh. Henrik
Avatar billede kedde65 Praktikant
29. december 2005 - 12:59 #5
Kan du ikke lige sende mig dokumentet på ck@officekonsulenterne.dk så skal jeg lige kigge på det...

/Christian
Avatar billede henrik1975 Nybegynder
29. december 2005 - 13:06 #6
Jeg regnede den ud

Set objRange = WordApp.ActiveDocument.Range
WordApp.ActiveDocument.Tables.Add(Range:=objRange, NumRows:=3, NumColumns:=4)

Løste problemet. Smider du et svar så du kan få point?

Tak for hjælpen

Mvh. Henrik
Avatar billede kedde65 Praktikant
29. december 2005 - 13:07 #7
Hermed et svar :-) Godt det lykkedes... har selv arbejdet en del med at hive valu labels etc. ud fra SPSS til Excel... Fy for den :-)

/Christian
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester