|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
各位老师:
现有11台测试机,分别在规定的时间对应测试的产品进行取样,并测试出抽样结果,见表。
本人想通过根据数表反映抽样波动情况,现已解决自动跟踪显示每台测试的图表区和绘图区情况,如果按行绘图能够实现,可按列绘图出了问题,只能单列绘图。问题出在数据源,现提出来请老赐教!
问题一:请帮助解决每个图表按列显示每台测试机的数据源。
问题二:请帮助解决每个图表能不断显示后续的100个数据源的数据点,不想每次都重新设置数据源。
本人已找到问题所在代,但没有想出好的办法。请帮助解决!再次表示谢谢!
问题所在代码:
With myChart.Chart
.ChartType = xlLineMarkers 'xlColumnClustered设置图表类型
.SetSourceData Source:=Sheet1.Range("b430:b530").Offset(m - 1), PlotBy:=xlColumns ' 分别设置新创建图表的数据源区域,指定图表数据源并按列排列
.HasLegend = False '如果图表有图例,则该值为 True
全部代码如下:
Sub myChartsAdd()
Dim myChart As ChartObject
Dim i, ii As Integer
Dim rr, mm As Integer
Dim r, m, k As Integer
Sheet1.Activate '激活当前工作表
r = Sheet1.Range("A65536").End(xlUp).Row 'ActiveSheet.UsedRange.Rows.Count ' - 1'当前工作表中已使用的行数
m = ActiveSheet.UsedRange.Columns.Count '当前工作表中已使用的列数
k = Abs(Int(-(1 / (m - 1)))) '设置7行1列排列图表
Sheet2.ChartObjects.Delete '清除Sheet2中的图表
For ii = 1 To (m - 1)
'For i = i To r
Set myChart = Sheet2.ChartObjects.Add _
(Left:=(((ii - 1) Mod k) + 1) * 330 - 320, _
Top:=((ii - 1) \ k + 1) * 110 - 100, _
Width:=750, Height:=100) '设置图表区大小及个数
With myChart.Chart
.ChartType = xlLineMarkers 'xlColumnClustered设置图表类型
.SetSourceData Source:=[color=Red]Sheet1.Range("b1:b100").Offset(m - 1), PlotBy:=xlColumns ' 分别设置新创建图表的数据源区域,指定图表数据源并按列排列
.HasLegend = False '如果图表有图例,则该值为 True
With .PlotArea.Interior '设置绘图区颜色
.ColorIndex = 15 '设置绘图区颜色,用数字表示
.PatternColorIndex = 1
.Pattern = xlSolid
End With
With .ChartArea.Interior '设置图表区颜色
.ColorIndex = 8 '设置图表区颜色,用数字表示
.PatternColorIndex = 1
.Pattern = xlSolid
End With
.Axes(xlCategory).TickLabels.Delete 'Font.Size = 1 '
.Axes(xlValue).TickLabels.Font.Size = 1 'Delete '
End With
'Next i
Next ii
Sheet2.Select
Set myChart = Nothing '将对象变量从实际对象中分离开来
End Sub
|
|