6

Долгое время я не думал, что у Shape (например, Text Box) можно установить значение по формуле, но, оказывается, вы можете. Точно так же кажется, что вы не можете применить условное форматирование к Shapes (эта опция недоступна на ленте в Excel 2007); Есть ли какой-то секретный способ обойти эту проблему и применить условное форматирование к Shape? В случае, если ответ отличается для разных типов фигур или форматов, я специально пытаюсь условно применить разные цвета к прямоугольнику.

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

2 ответа2

4

Нет, но вы можете подделать

Вы можете подделать его, но это требует некоторой настройки. Это будет работать, если вам не нужны действительно большие фигуры. Вот шаги для создания n различных форм условного формата в Excel 2010.


tl; dr Используйте 1 дополнительную ячейку и 1 текстовое поле для каждого условия, которое вы хотите. Каждое текстовое поле настроено так, чтобы показывать гигантский текст с огромными контурами и тенями, одинакового цвета. Дополнительные ячейки настроены на отображение текста только в том случае, если значение соответствует условию.


  1. Создайте n вспомогательных столбцов, которые будут отображаться пустыми, если значение не соответствует правильному условию. Простым примером для случаев n = 3 может быть: (мы узнаем, почему я использовал "888" позже

    =IF(A1=1,"888","") =IF(A1=2,"888","") =IF(A1=3,"888","")
    Однако сейчас просто заполните вспомогательные столбцы текстом, а не формулой.

  2. Отформатируйте цвет текста в каждом вспомогательном столбце, чтобы он соответствовал этому условию.

  3. Создайте 1 текстовое поле правильного размера и вставьте любой текст (например, "Hello World")
  4. Отформатируйте границы так, как вам нравится, но убедитесь, что заливка No Fill заполнена
  5. Щелкните правой кнопкой мыши по тексту и выберите «Форматировать текстовые эффекты ...» в нижней части контекстного меню.
  6. Установите текстовую схему на сплошную линию правильного цвета для условия 1
  7. Установите стиль контура 25pt или что-то еще очень высокое
  8. Установите для Shadow значение Outer> Offset Center с прозрачностью 0% и размером 200%.
  9. Скопируйте это текстовое поле n-1 раз, так что теперь у вас есть n всего
  10. Измените настройки цвета для каждого из них, чтобы быть тем, что вам нужно
  11. Вернитесь назад и задайте формулу для каждого столбца помощника, убедившись, что он подключен к правильному столбцу.
  12. Если текст в текстовых полях заполнен неверно, вернитесь в каждое из них и измените его.
  13. Для каждого текстового поля установите размер шрифта равным 70 или любой другой размер, необходимый для полного заполнения поля цветом
  14. После того, как все настроено, вернитесь и измените вспомогательные столбцы на формальные. Попросите их показать текст, который занимает много места, например 8, # или какой-либо символ в виде рамки.
  15. Проверьте его, чтобы убедиться, что для каждого значения одно текстовое поле показывает цвет, а остальные - не заполнены.
  16. Сложите все текстовые поля (может быть полезно Align> Left и Align> Top) и сгруппируйте их, чтобы они не запутались так легко

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

Значение 1

Значение 2

Значение 3

2

Я не уверен, что есть. В 2007 году, как и в более старых версиях Excel, FormatConditions можно применять только к диапазонам, а не к фигурам.

Однако, если я правильно понимаю вашу ситуацию в том смысле, что вы не можете использовать макросы, то я не уверен, что вы сможете применить условное форматирование за кулисами в любом случае ... и если бы вы могли использовать макросы /VBA, тогда вам не обязательно нужно условное форматирование; Вы должны быть в состоянии запустить процедуру для форматирования форм по мере необходимости. Должно работать что-то вроде следующего, но я предполагаю, что вы уже обнаружили эту часть:

ActiveWorkbook.ActiveSheet.Shapes(1).Fill.ForeColor.RGB = RGB(0, 0, 255)

Если вы хотите отформатировать фигуры на основе значений, введенных на листе, то да, было бы проще использовать условное форматирование, если бы оно было доступно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .