Сохраняйте выделенную ячейку таблицы Word при выборе другой ячейки с помощью VBA

#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