#vba #ms-word
#vba #ms-word
Вопрос:
У меня есть таблица с 2 столбцами. В первой установлен флажок, вторая содержит текст. Флажок выделяет ячейку
Sub CB1_Click()
If CB1 = True Then
For Each itable In ActiveDocument.Tables
itable.Cell(1, 2).Range.Select
Next
End If
End Sub
Проблема в том, что если я проверю третью строку вниз, первая строка потеряет выделение и не останется выделенной:
Sub CB3_Click()
If CB3 = True Then
For Each itable In ActiveDocument.Tables
itable.Cell(3, 2).Range.Select
Next
End If
End Sub
Как я могу изменить код, чтобы после нажатия кнопки CB1 текст во 2-м столбце первой строки оставался выделенным при нажатии кнопки CB3. Это тот же эффект, что и удерживание клавиши CTRL, а затем щелчок по ячейке, которую я хочу скопировать. Я просто хочу использовать флажок для той же цели.
Комментарии:
1. К сожалению, нет поддержки для работы с несмежными выборками или диапазонами через объектную модель Word. Выбор нескольких диапазонов может быть выполнен только пользователем.
2. Постскриптум: Ограничения задокументированы здесь
Ответ №1:
Вам нужно, чтобы они были «выделены» или просто хотите, чтобы цвет фона легко менялся
itable.Cell(1, 2).Shading.BackgroundPatternColor =wdColorAqua
позже вы можете выполнить поиск по другим цветам фона, чтобы что-то делать с данными
Но я бы предложил не использовать таблицу и перейти к использованию пользовательской формы, которая может быть настроена на выполнение практически всего с помощью кликов
вам нужно настроить форму так, чтобы один флажок не отключал другие
Я использую много таких форм для ввода данных в моем EHR
если вы не хотите изменять всю ячейку, просто используйте выделение
Selection.Range.HighlightColorIndex = wdTeal