我需要填寫具有不同顏色的一個小區作爲在這張照片(3行被垂直合併和顏色被手動繪製在使用3個的矩形形狀此圖片):Excel中 - 填充的細胞用不同的顏色
我可以找到填充單元格部分的唯一方法是使用條件格式(將樣式設置爲數據欄並填充爲實體),但它只支持一種顏色。 這是可能的有或沒有VBA?
我需要填寫具有不同顏色的一個小區作爲在這張照片(3行被垂直合併和顏色被手動繪製在使用3個的矩形形狀此圖片):Excel中 - 填充的細胞用不同的顏色
我可以找到填充單元格部分的唯一方法是使用條件格式(將樣式設置爲數據欄並填充爲實體),但它只支持一種顏色。 這是可能的有或沒有VBA?
這是可能的。
我發現了兩種方法可以做到這一點。 1-使用黑色方形字符(字符代碼2588 - vba:ActiveSheet.Cells(1,1)= ChrW(& H2588))並根據百分比對它們着色。這個字符填滿了單元格的高度,而且它們之間沒有間距,這就允許完全填充單元格(當然,你應該考慮在單元格中留下縮進)。只有在這裏問題,你不能在一個單元格中使用很多字符;我使用它們中的30個,並根據30比例縮放字符數(即50%紅色表示15個紅色字符-2588)。
2-與@Doktor Oswaldo的建議相同:在單元格中使用單元格的位置和大小(以像素爲單位)插入繪圖。這種方法有一個很大的優點:您可以準確地顯示比率。另外,你也可以用一個模式填充數據系列。但是如果你有很多情節,你會犧牲Excel的表現。對於繪圖設置,我使用以下VBA代碼:
'Define var's
Dim src As Range, targetCell As Range
Dim chacha As ChartObject
'Set var's
Set src = Worksheets("Sheet1").Range("B1:B3")
Set targetCell = Worksheets("Sheet1").Range("C2")
'Create plot at the target cell
Set chacha = Sheets("Sheet1").ChartObjects.Add(targetCell.Left, targetCell.Top, targetCell.Width, targetCell.Height)
'Change plot settings to fill the cell
With chacha.Chart
.ChartType = xlBarStacked
.SetSourceData Source:=src, PlotBy:=xlRows
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 100
.Axes(xlCategory).Delete
.Axes(xlValue).Delete
.Legend.Delete
.PlotArea.Top = -50
.PlotArea.Left = -50
.PlotArea.Width = targetCell.Width
.PlotArea.Height = targetCell.Height
.ChartGroups(1).GapWidth = 0
End With
chacha.Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
chacha.Chart.SeriesCollection(2).Format.Fill.ForeColor.RGB = RGB(0, 0, 255)
chacha.Chart.SeriesCollection(3).Format.Fill.ForeColor.RGB = RGB(255, 255, 0)
在代碼中我手動修改了系列顏色,也可以自動化。以下是兩種方法的截圖。單元格「C1」填充了塊字符,「C2」是圖表。
注意:您可能會在該行 「.PlotArea.Top」 得到一個錯誤。要解決這個問題,請檢查:Error setting PlotArea.Width in Excel, VBA (Excel 2010)
據我所知在Excel中這是不可能的,至少不容易。但嘗試看看Diagramm類型。這將是一個簡單的解決方案。 –
感謝@DoktorOSwaldo,至今我找不到任何方法。如何將環形圖添加到單元格?我知道可以使用sparklines將線條或柱狀圖添加到單元格,但我想知道是否可以使用環形圖表。 – Lati
您不能直接將其添加到單元格,但可以將單元格設置爲左側和頂部。看看ChartObjects.Add - >使用ActiveSheet.ChartObjects.Add(左:=範圍(「I5」)。左,_ 頂部:=範圍(「I5」)頂部,_ 等等 –