Utwórz wykres kolumnowy w komórce - wskazówki dotyczące programu Excel

Czytelnik z Czech zapytał o utworzenie wykresu w komórce, aby zilustrować procent.

Jeśli wartość w komórce wynosiła 37%, jak mogę wypełnić 37% komórki od dołu kolorem?

Mala Singh z naszego działu grafiki wymyśliła to ciekawe rozwiązanie, aby uzyskać pożądany efekt. Mala utworzyła arkusz roboczy, w którym każdy wiersz składa się w rzeczywistości z 2 połączonych wierszy. Komórki B2 i B3 są połączone razem w jednej komórce. Gdy wartość w B2 zostanie zmieniona, fragment kodu VBA w panelu arkusza roboczego automatycznie dostosuje wysokość wiersza 2 i 3. Komórka C3 ma kolor niebieski, a komórka C2 ma kolor biały. Efekt jest taki, że w kolumnie C pojawia się wykres kolumnowy w komórce. Ten obraz przedstawia różne wysokości niebieskiego paska w komórkach od C2 do C13.

Pierwszym krokiem jest połączenie komórek B2 i B3 w jedną komórkę. Zaznaczasz komórki B2 i B3. Z menu wybierz Format, Komórki. Przejdź do zakładki Wyrównanie. Zaznacz pole Scal komórki. Spowoduje to, że B2 i B3 będą działać jako pojedyncza komórka o nazwie B2.

Pozostaw komórkę C2 bez wypełnienia i użyj dowolnego wypełnienia kolorem dla komórki C3.

Kod tej techniki nie jest umieszczany w zwykłym module. Jest to kod „obsługi zdarzeń” i musi być umieszczony w module kodu dla tego konkretnego arkusza. Przeczytaj artykuł Makro zdarzenia, aby dodać ścieżkę i nazwę pliku do nagłówka programu Excel, aby zobaczyć, jak otworzyć moduł kodu dla arkusza.

Wprowadź następujący kod w module kodu dla Sheet1 (lub dowolnego arkusza, z którym pracujesz).

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

Możesz powtórzyć proces łączenia par komórek w kolumnie B.

Podziękowania dla Mala Singh za to rozwiązanie. Mala może zaprojektować niestandardowe rozwiązania do tworzenia wykresów, aby spełnić wszelkie potrzeby. Wniósł wkład do rozdziału poświęconego wykresom w VBA i Macros for Excel.

Interesujące artykuły...