购物车应如何显示信息,由于我在单元格B16中添加了零值,因此正确显示了购物车
错误图表,由于抵押贷款1的单元格中没有零值,因此无法正确显示
宏的运行方式以及来自用户表单的信息
我的信息来自用户表单
我有一个图表,该图表是使用宏为一系列单元格生成的。有时在该范围内会存在一些空白单元格。我在生成带有空单元格值的图表时遇到问题,该图表将在第一个非空单元格处开始绘制,从而导致类别轴无法报告正确。如何使用VBA使图表在图表上显示空白值。我不希望在单元格范围内使用公式。
这是我的代码:
Sub createchart()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = wb.Sheets("contactunder")
Dim CellRow As Integer
wb.Sheets("ContactsFront").Select
CellRow = ActiveCell.Row
Worksheets("samplesheet").Activate
ActiveSheet.Shapes.AddChart2(251, xlBarClustered).Select
ActiveChart.DisplayBlanksAs = xlNotPlotted
ActiveChart.SetSourceData Source:=ws.Range("BY" & CellRow & ",CB" & CellRow & ",CH" & CellRow & ",CJ" & CellRow & ",CL" & CellRow & ",CN" & CellRow & ",CP" & CellRow)
ActiveChart.FullSeriesCollection(1).XValues = "contactunder!$BY$10,contactunder!$CB$10,contactunder!$CH$10,contactunder!$CJ$10,contactunder!$CL$10,contactunder!$CN$10,contactunder!$CP$10"
ActiveChart.SetElement (msoElementDataLabelOutSideEnd)
ActiveChart.SetElement (msoElementPrimaryCategoryGridLinesNone)
ActiveChart.Axes(xlValue).MajorGridlines.Format.Line.Visible = msoFalse
ActiveChart.FullSeriesCollection(1).DataLabels.ShowCategoryName = False
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Analysis for " & ws.Range("D" & CellRow)
ActiveChart.HasAxis(xlValue) = False
ActiveChart.HasLegend = False
End With
End Sub
答案 0 :(得分:2)
由于您使用联合范围作为图表的源数据,因此在使用{将联合范围设置为图表的源数据之后,该联合范围内的第一个空白单元将不会进入源{1}}。
因此,第一个单元格在该联合范围内不得为空。没有值的单元格必须为<?php
$myObj['name'] = "Smith";
$myObj['age'] = 20;
$myObj['Address'] = "Yangon";
$myJSON = json_encode($myObj);
echo "$myJSON";
?>
。
您可以在代码中将SetSourceData
替换为空白,如下所示:
#N/A
当然,您需要记住,在公式中使用该单元格时,该单元格中可能存在错误值。因此,也许您必须然后使用#N/A
。但是尽管如此,我不会使用0,因为0是一个有价值的数字,它的含义不同于空白。空白表示不可用,而不是0。所以我会在这里真的使用...
Set oChartRange = ws.Range("BY" & CellRow & ",CB" & CellRow & ",CH" & CellRow & ",CJ" & CellRow & ",CL" & CellRow & ",CN" & CellRow & ",CP" & CellRow)
For Each oCell In oChartRange
If Not IsError(oCell.Value) Then
If oCell.Value = "" Then oCell.Value = CVErr(2042)
End If
Next
ActiveChart.SetSourceData Source:=oChartRange
...
。