在excel里用VBA编写程序,插入一个散点图里显示两个ActiveX控件的两条曲线怎么写
发布网友
发布时间:2022-05-11 19:39
我来回答
共2个回答
热心网友
时间:2023-10-18 00:52
你这个是不是用combobox当开关,来显示/隐藏散点图线?
我也正在学这个,我写了一下,你试试看管用不:
假设表里有一个散点图编号是1,上面要画2个图线,分别取名为“数据1”和“数据2”,数值取自本表的p2到p12、q2到q12,那么散点图的代码:
Private Sub ChartSettings()
Set Cht = Me.ChartObjects(1)
With Cht.chart
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "数据1"
.SeriesCollection(1).Values = Me.Range("p2:p12")
.SeriesCollection(2).Name = "数据2"
.SeriesCollection(2).Values = Me.Range("q2:q12")
End With
End Sub
上面的散点图,如果要用combobox1和combobox2来控制两条图线的显示/隐藏,那么combobox的代码:
Private Sub ComboBoxSettings()
ComboBox1.List = Array("显示数据1", "隐藏数据1")
ComboBox2.List = Array("显示数据2", "隐藏数据2")
End Sub
Private Sub ComboBox1_Change()
If ComboBox1 = "隐藏数据1" Then
Call ChartUpdate(1, 0)
Else
Call ChartUpdate(1, 1)
End If
End Sub
Private Sub ComboBox2_Change()
If ComboBox2 = "隐藏数据2" Then
Call ChartUpdate(2, 0)
Else
Call ChartUpdate(2, 1)
End If
End Sub
其中调用的ChartUpdate(x,y),x代表图线编号,y代表是否显示。把图线的数据来源改成空值,图线就隐藏了:
Private Function ChartUpdate(SeriesNum As Integer, IsVisble As Boolean)
Set Cht = Me.ChartObjects(1)
'SeriesNum表示散点图线编号;IsVisble表示散点图是否显示
With Cht.chart
If SeriesNum = 1 Then
If IsVisble = True Then
.SeriesCollection(1).Values = Me.Range("p2:p12")
Else
.SeriesCollection(1).Values = ""
End If
Else
If IsVisble = True Then
.SeriesCollection(2).Values = Me.Range("q2:q12")
Else
.SeriesCollection(2).Values = ""
End If
End If
End With
End Function
热心网友
时间:2023-10-18 00:53
根据activecell的column,确定是否显示日历控件.追问我就是加了一个ComboBox26_Change~ComboBox28_Change
我意思是能不能一个散点图里同时显示两个ComboBox的值