2017-01-27 32 views
0

Разработка инструмента планирования в Word, я использую таблицу для каждого сеанса учебного курса. Я хочу отформатировать отдельные ячейки в соответствии с их столбцом (по два варианта цвета для каждого). Для целей компоновки некоторые ячейки строки заголовка объединяются. Я хочу, чтобы мой пользователь щелкнул правой кнопкой мыши по ячейкам под заголовком «P», затем выберите тип активности, который затем будет закодирован цветом в качестве затенения фона ячейки.Формат таблицы Word 2016

Image: Training session table, cells under P only color-coded, no text

Поэтому мой Range объекта ошибка 5992 возвращается во время выполнения, как «Как видно из таблицы имеет разное количество столбцов, эта коллекция не предоставляет доступ к отдельным колонкам»

Sub Makro2() 
    Dim minCelle As Range 
    Selection.SelectCell 
    Set minCelle = Selection.Range 
    minCelle.Text = minCelle.Columns.First.Index 
    ' Here the error occurs. As a starting point, I want VBA to insert col# 
End Sub 

После того, как я установил номера столбцов , Я могу работать с условной окраской.

Я работаю в Word 2016, но хотел бы, если возможно некоторая обратная совместимость. Я попробовал это на MWE: документ Word 2016 .docm, содержащий двухстрочную таблицу с тремя столбцами с двумя ячейками, объединенными в первой строке, и содержащую макрос с указанным выше кодом.

+0

Я немного смущен: вам нужно отформатировать отдельные ячейки (ваше объяснение дает мне такое впечатление) или целые столбцы? В быстрой проверке следующее возвращает для меня правый столбец, даже если ячейки объединены в первую строку: Selection.Cells (1) .ColumnIndex –

+0

Не могу проверить прямо сейчас, но я буду утром. Благодарю. – Engelsmann

ответ

0

Выполнение коррекции с @CindyMeister ниже, я получаю фактическое число столбцов.

Sub Makro2() 
    Dim minCelle As Range 
    Selection.SelectCell 
    Set minCelle = Selection.Range 
    minCelle.Text = Selection.Cells(1).ColumnIndex 
End Sub