Създаване в диаграма на колона на клетка - Съвети на Excel

Читател от Чешката република попита за създаването на вътрешна клетъчна диаграма, за да илюстрира процент.

Ако стойността в клетка е била 37%, как мога да запълня 37% от клетката отдолу с цвят?

Мала Синг от нашето графично подразделение излезе с това интересно решение, за да постигне желания ефект. Мала създаде работен лист, където всеки ред всъщност се състои от 2 слети реда. Клетки B2 и B3 се обединяват в една клетка. Когато стойността в B2 се промени, малко VBA код в панела на работния лист автоматично ще регулира височината на ред 2 и ред 3. Клетка C3 е оцветена в синьо, а клетка C2 е оцветено в бяло. Ефектът е, че колона С изглежда показва колонна диаграма в клетката. Това изображение показва различни височини на синята лента в клетки C2 до C13.

Първата стъпка е да се слеят клетки B2 и B3 в една клетка. Ще изберете клетки B2 и B3. От менюто изберете Форматиране, Клетки. Отидете в раздела Подравняване. Поставете отметка в квадратчето за Обединяване на клетки. Това ще накара B2 & B3 да действат като единична клетка, наречена B2.

Оставете клетка C2 без запълване и използвайте цветна запълване за клетка C3.

Кодът за тази техника не се поставя в обикновен модул. Това е код за "обработчик на събития" и трябва да бъде поставен върху модула на кода за този конкретен работен лист. Прочетете статията „Макрос на събитието“, за да добавите пътя и името на файла към заглавката на Excel, за да видите как да отворите модула на кода за работен лист

Въведете следния код в модула за код за Sheet1 (или какъвто и да е лист, с който работите).

Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 2 And cell.Row> 1 Then If cell.Value> 1 Or cell.Value < 0 Then cell.Select MsgBox ("Value must be between 0 and 100%") End If If IsEmpty(cell) Or cell.Value = 0 Then cell.Range("B1:B2").RowHeight = 25 'cell.Range("B2").Interior.ColorIndex = xlNone Else On Error Resume Next cell.Range("B1").RowHeight = 50 * (1 - cell.Value) With cell.Range("B2") .RowHeight = 50 * cell.Value '.Interior.Color = RGB(0, 0, 255) On Error GoTo 0 End With End If End If Next End Sub

Можете да повторите процеса на обединяване на двойки клетки в колона Б.

Благодаря на Mala Singh за това решение. Mala може да проектира персонализирани решения за картографиране, за да отговори на всякакви нужди. Той допринесе за главата за графики във VBA и Macros for Excel.

Интересни статии...