Я в этом не разбираюсь - я даже не слышал о RSCC, пока не увидел ваш вопрос, - но я собрал воедино то, что может быть частью вашего решения.
Я предполагаю, что ваши данные находятся в таблице, а поле «имя» - это столбец 1.
Введите этот код VBA:
Sub listControl_1()
Dim o As Table
Dim c As Row
Dim mylist As Variant
Set o = ActiveDocument.ContentControls.Item(1).Range.Tables(1)
rownum = 0
For Each c In o.Rows
rownum = rownum + 1
If rownum > 1 Then
thislen = Len(c.Cells(1).Range.Text)
If thislen > 0 Then
thislen = thislen - 1
End If
If rownum = 2 Then
mylist = Mid(c.Cells(1).Range.Text, 1, thislen)
Else
mylist = mylist & ", " & Mid(c.Cells(1).Range.Text, 1, thislen)
End If
End If
Next c
MsgBox mylist
End Sub
Тест If rownum > 1 Then
предполагает, что в вашей таблице есть строка заголовка (и пропускает ее, чтобы вы не получили текст заголовка в списке).
Если у вас нет строки заголовка (или если у вас их несколько), измените код соответствующим образом.
Кажется, что каждая ячейка имеет символ разделителя в конце; код использует Mid()
чтобы убрать это.
Это собирает разделенный запятыми список значений для столбца 1 первой таблицы и отображает его в окне сообщения.
Если ваших данных нет в таблице, я не знаю, что вам сказать.
Если ваши данные находятся в таблице, но они не первые в документе, я не знаю, как найти правильную.
И, самое главное, я не знаю, как включить список в ваш документ.
Как я уже сказал, это в лучшем случае часть вашего решения.
Я скопировал структуру кода VBA из MSDN «Как получить значение из управления контентом в разделе« Контентное управление повторяющегося раздела »».
(Там есть больше кода, который вы могли бы найти полезным.)
Обратите внимание, что их код делает Mid(text, 1, Len(text) - 2)
.
Я попытался вычесть 2 из длины, и я потерял последний символ текста; Я не знаю, почему это не так.
Также я замечаю, что их код делает c.Cells(columnNumber).Range.Text = someText
для записи данных в таблицу.
Возможно, вы можете использовать это в качестве подсказки, чтобы выяснить, как получить результат от рутины в ваш документ.