Probleem met selecteren van tekst uit Word-tabel

Status
Niet open voor verdere reacties.

Wimpieoh

Gebruiker
Lid geworden
18 mrt 2008
Berichten
40
Uit de tabel in het document Schots.docx wil ik de tekst selecteren als er "ICCF" in voorkomt.
Later ga ik dit aanpassen met een InputBox. Als ik de macro uitvoer krijg ik de volgende foutmelding
'Fout 5941 tijdens uitvoering Het gevraagde lid van de collectie bestaat niet''
op de regel met While. Tja, myTable.Rows(1) is een object. Ik dacht dit eerst te converteren naar een
Variant (met CVar) en daarna naar een String (met CStr) maar dit gaat blijkbaar niet. Als ik die conversies
weglaat is er een mismatch van types. Iemand een idee hoe het wel zou kunnen. Alvast bedankt.


Code:
Sub Macro1()
'
' Macro1 Macro
'
'
    Dim i As Integer, j As Integer
    Dim opslag(1 To 500) As String
    Dim myTable As Table
    Set myTable = ActiveDocument.Tables(1)
    i = 2
    j = 0
    While (CStr(CVar(myTable.Rows(i))) <> "   ")
       If (InStr(CStr(CVar(myTable.Rows(i))), "ICCF") <> 0) Then
           j = j + 1
           opslag(j) = CStr(CVar(myTable.Rows(i)))           
       End If
       i = i + 1
    Wend    
    MsgBox (opslag)
   
End Sub
 

Bijlagen

  • Schots.docx
    15,1 KB · Weergaven: 19
Vreemde macro; om te beginnen declareer je een array met een vaste waarde en niet dynamisch, ten tweede gebruik je de eigenschap Rows.Count van de tabel niet om te bepalen hoeveel rijen je nu werkelijk hebt. Ten derde gaat je MsgBox nooit werken, omdat je een array niet op deze manier kan weergeven. Probeer deze eens:
Code:
Option Base 1

Code:
Sub Macro1()
Dim i As Integer, j As Integer
Dim opslag() As String, msg As String
Dim myTable As Table
    
    Set myTable = ActiveDocument.Tables(1)
    j = 0
    For i = 1 To myTable.Rows.Count
        If (InStr(CStr(CVar(myTable.Rows(i))), "ICCF") <> 0) Then
        j = j + 1
        ReDim Preserve opslag(j)
        opslag(j) = CStr(CVar(myTable.Rows(i)))
        If Not msg = "" Then msg = msg & vbLf
        msg = msg & opslag(j)
       End If
    Next i
    MsgBox msg
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan