Статьи из блога

Статьи из блога

Расцвечивание отдельных ячеек в таблице

Рубрика: Вопрос-Ответ, Макросы, Таблицы Word
Метки: |
Среда, 30 июля 2008 г.
Просмотров: 11227
Подписаться на комментарии по RSS
Версия для печати

[Ссылки на статью]

Тимофей спрашивает:

Как сделать условное форматирование в таблице Word: при значении "ready" - красить ячейку в зеленый цвет, при значении "on goning" - в желтый, и при других значениях - в красный? В Excel это называется условным форматированием. В Word найти такого не смог.

Тимофей, если вы хотите делать это автоматически, то вам нужно использовать макрос, который бы проверял каждую ячейку таблицы и, найдя определенное слово в ней, заливал бы эту ячейку нужным цветом.

В принципе это несложно реализовать с помощью следующего макроса.

Sub cellscolor()
'Расцвечивание отдельных ячеек в таблице в зависимости от текста в этих ячейках
'Помощь Steven Craig Miller 
Dim rngTable As Range
Dim oTable As Table
Dim oRow As Row
Dim oCell As cell
Dim sStr As String
Set rngTable = Selection.Range
Set oTable = Selection.Tables(1)
If Not rngTable.Information(wdWithInTable) Then
 MsgBox prompt:="Курсор находится вне таблицы"
Else
   With oTable
      For Each oRow In .Rows
         For Each oCell In oRow.Cells
            oCell.Shading.BackgroundPatternColor = wdColorRed  'заливаем все ячейки одним цветом
            sStr = oCell.Range.Text
            'помимо текста ячейка всегда содержит два дополнительных символа
            'в конце. Эти символы нужно исключить, что и делает сл.оператор
            sStr = Left(sStr, Len(sStr) - 2)
            Select Case sStr
               Case "ready"
                  oCell.Shading.BackgroundPatternColor = wdColorGreen   'зеленым
               Case "on goning"
                  oCell.Shading.BackgroundPatternColor = wdColorYellow  'желтым
            End Select
         Next oCell
      Next oRow
   End With
End If
End Sub

Все советы с сайта Word Expert в книге Word 2003/2007. Народные советы

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Еще записи по вопросам использования Microsoft Word:

Комментариев: 15

  1. Мария
    10.03.2010 в 13:47 | #1

    Подскажите, пожалуйста, как сделать так, чтобы расцвечивался только текст, а не заливалась ячейка целиком?

  2. 10.03.2010 в 20:00 | #2

    Макросом?

    Вместо строки:

    oCell.Shading.BackgroundPatternColor = wdColorGreen   'зеленым

    нужно написать

    oCell.Range.Font.Color = wdColorGreen   'зеленым

    и аналогично для второго случая.

  3. Мария
    18.03.2010 в 16:41 | #3

    Теперь другая проблема - у меня некоторые строки объединены по вертикали и отсутствует доступ к отдельным строкам.

  4. Марина
    18.06.2010 в 11:54 | #4

    У меня Word2007, классическая панель, есть таблица в документе, не мной созданном. Когда встаю курсором на текст в ячейке (один левый клик), вся строка таблицы синеет, текст еле видно, второй клик - сильнее синеет так, что уже текст не видно. Что это может быть? Если мышью щелкнуть за таблицей в тексте - синева исчезает. Это не маркер, не заливка... а что-то непонятное. Помогите разобраться

  5. 18.06.2010 в 13:11 | #5

    Марина, ваша проблема известна и связана она с кнопками на панели быстрого доступа (ПБД). Известно, что такой эффект проявляется, если на ПБД есть кнопки "Отдельный колонтитул для первой страницы" или "Различать колонтитулы чётных/нечётных страниц". Удалите эти кнопки и эффект должен пропасть.

    Если не помогает или у вас эти кнопки не стоят на ПБД, то по одной удаляйте другие кнопки и смотрите, какая даст нужный эффект.

    О результатах доложите.

    Добавлено Не заметил фразу про классическую панель. Может быть и в ней дело?

  6. Марина
    21.06.2010 в 10:51 | #6

    Александр! спасибо огромнейшее! Не поняла закономерности, но эффект посинения исчез как только удалила кнопки с ПБД, связанные с колонтитулами!

    ...а у меня еще проблема с сквозной нумерацией, в разделе "раздельные колонтитулы"...

  7. 21.06.2010 в 12:15 | #7

    Марина, по поводу колонтитулов лучше разместите тему на форуме, приложив файл. Со слов трудно уяснить, что именно у Вас происходит.

  8. Аноним
    23.06.2010 в 10:18 | #8

    Я обязательно тему открою про нумерацию. Сейчас вот какая проблема: вордовский документ, созданный в оф2003, имеет списки с многоуровневой нумерацией. В оф2007 нумерация не отображается... Почему?

  9. 27.06.2010 в 19:11 | #9

    А ваши многоуровневые списки определены отдельными стилями каждый уровень? У меня они определены и таких проблем, как у вас - нет.. Хотя все списки сделаны многоуровневые.. И были сделаны именно в 2003. И в 2007 с ними все нормально!

  10. Марина
    30.09.2010 в 11:26 | #10

    У меня есть документ в Word 2007 . Главы отстилизованы. В "Схеме документа отражаются". Если меняю на "обычный" стиль, некоторые главы, то они из схемы документа исчезают, соответственно. После сохранения закрываю документ, потом снова открываю, и ... почему-то стили не сохраняются. В чем дело?

  11. 30.09.2010 в 18:02 | #11

    Марина, стили следует создавать не в документе, а в шаблоне, на основе которого и создается данный документ. Тогда все сохраняется и присутствует.

  12. Марина
    07.10.2010 в 04:51 | #12

    Но ведь "обычный" стиль я беру из списка стилей, который привязан к нормал-доту...это же стандартный стиль. Затем сохраняю документ. А когда открываю, то обнаруживаю в схеме документа, опять те куски (заголовки) текста, которые форматировала "обычным" стилем. То есть - не сохранилось...

  13. Марина
    07.10.2010 в 11:39 | #13

    Спасибо за предыдущее)). Странно, только что стиль"обычный" привязан к Normal.dot и его применение к тексту не сохраняется. А документ основан на Normal.dot. У меня еще вопросик....

    Имеется файл.dot в котором есть небольшой код, он лежит в профиле в Word\Startup\ и подгружается при запуске Word 2003. Все работало. Работает также в Word 2007. Недавно поставила себе Office2010. Этот код перестал работать, пишет : макрос не найден или отключен, но если я скопирую его в Normal.dot\Module в окне VBA, то он работает...Но мне не нужно в Normal.dot...

    В параметрах Word, все макросы разрешены и безопасность низкая.

    Подскажите причину пожалуйста

  14. Лика
    25.10.2011 в 20:34 | #14

    Я создала автоматические колонтитулы с автоматической нумерацией страниц в ворде2010. Открывая у себя этот док у меня автоматическая нумерация страниц с колонтитулами сохраняется, а у того человека к которому я переслала этот док по email показывает что автоматические колонтитулы с автоматической нумерацией страниц вобще не присутствуют(он открывает его тоже в ворде2010). Почему так подскажите пожалуйста.

  15. Лика
    26.10.2011 в 12:06 | #15

    Подскажите пожалуйста вообще как правильно создавать автоматические колонтитулы с автоматической нумерацией страниц

Оставьте комментарий!

(обязательно)

^ Наверх