我需要填写具有不同颜色的一个小区作为在这张照片(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”)顶部,_ 等等 –