En läsare från Tjeckien frågade om att skapa ett celldiagram för att illustrera en procentandel.
Om värdet i en cell var 37%, hur kan jag fylla 37% av cellen från botten med en färg?

Mala Singh från vår grafikavdelning kom med denna intressanta lösning för att producera önskad effekt. Mala byggde ett kalkylblad där varje rad faktiskt består av två sammanslagna rader. Celler B2 och B3 slås ihop i en enda cell. När värdet i B2 ändras kommer lite VBA-kod i kalkylpanelen att justera höjden på rad 2 och rad 3. Cell C3 färgas blått och cell C2 färgas vitt. Effekten är att kolumn C verkar visa ett kolumndiagram i cellen. Denna bild visar olika höjder av den blå stapeln i cellerna C2 till och med C13.

Det första steget är att slå samman cellerna B2 och B3 till en enda cell. Du väljer cellerna B2 och B3. Välj Format, Celler på menyn. Gå till fliken Justering. Markera rutan för att slå samman celler. Detta kommer att få B2 och B3 att fungera som en enda cell som heter B2.
Lämna cell C2 utan fyllning och använd färgfyllning för cell C3.
Kod för denna teknik placeras inte i en vanlig modul. Det är en "händelsehanterare" -kod och måste placeras på kodmodulen för just detta kalkylblad. Läs artikeln Händelsemakro för att lägga till sökväg och filnamn till Excel-rubriken för en bild av hur du öppnar kodmodulen för ett kalkylblad.
Ange följande kod på kodmodulen för Sheet1 (eller vilket ark du jobbar med).
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
Du kan upprepa processen att slå samman par av celler i kolumn B.
Tack till Mala Singh för den här lösningen. Mala kan designa anpassade kartlösningar för att möta alla behov. Han bidrog till kartläggningskapitlet i VBA och Macros for Excel.