J'écris une macro pour ajouter des entrées d'index aux entrées dans les tables dans Word. Certaines cellules contiennent une seule chaîne qui nécessite l'ajout de l'entrée à laquelle j'ai réussi à faire. Par exemple, la cellule contient 'S875'. Je l'ai utilisé le code suivant pour cela:Comment définir la chaîne dans un tableau à la plage dans Word VBA
For Each oRow In oTable.Rows
If oRow.Cells.count = 4 Then
oTable.Cell(oRow.Index, 4).Select
Selection.Expand unit:=wdCell
oem = Left$(Selection.Text, Len(Selection.Text) - 2)
If (oem Like "*O.E.M*") Or (oem Like "*OEM*") Then
'ignore this row
Debug.Print oem
Else
ActiveDocument.Indexes.MarkEntry Range:=Selection.Range, Entry:=oem, _
EntryAutoText:=oem, CrossReference:="", CrossReferenceAutoText:="",
BookmarkName:="", Bold:=False, Italic:=False
End If
End If
Next oRow
Mais j'ai des cellules qui ont besoin de deux ou plusieurs entrées d'index ajoutés, par exemple, S875, 876. J'ai divisé ces derniers dans un tableau et peut boucle à travers le tableau, mais je suis bloqué sur la façon de définir la plage pour ajouter les entrées d'index. Ce que j'est:
If Len(oem) > 6 Then
oemArray() = Split(oem, ", ")
For i = LBound(oemArray) To UBound(oemArray)
'need to use Indexes.MarkEntry to add an index entry for each
' string in the array
Debug.Print oemArray(i)
Next i
End If
Je pense que je soit besoin de changer en quelque sorte la sélection à chaque entrée sur le tableau ou utiliser la plage mais je ne suis pas sûr exactement?