Vba Excel复选框选择图表范围

Vba Excel复选框选择图表范围,vba,excel,excel-2010,excel-2013,Vba,Excel,Excel 2010,Excel 2013,我有这段代码,它根据通过复选框接受的信息创建一个图形。但您未选择的任何帐户都将显示为“空白”图例条目 是否有宏代码来删除“空白”图例条目 在表格下方创建另一个表格。然后将复选框链接到第一个表下面的表。然后在True/False之后输入=IF($B10=True,C3,“”) 然后将AddPlotActiveSheet.Range(“C9:C13,D9:O13”)替换为底部表格的范围 新问题。关于图例上的红线和绿线,有没有办法在未选择变量时使其消失。您正在设置源范围:=范围(“C9:O13”)。您

我有这段代码,它根据通过复选框接受的信息创建一个图形。但您未选择的任何帐户都将显示为“空白”图例条目 是否有宏代码来删除“空白”图例条目


在表格下方创建另一个表格。然后将复选框链接到第一个表下面的表。然后在True/False之后输入
=IF($B10=True,C3,“”)

然后将AddPlot
ActiveSheet.Range(“C9:C13,D9:O13”)
替换为底部表格的范围


新问题。关于图例上的红线和绿线,有没有办法在未选择变量时使其消失。您正在设置
源范围:=范围(“C9:O13”)
。您需要使用
Series.XValues
Series.Values
Series.Name
属性添加/删除
Series
数据,而不是设置
源数据。
Option Explicit

Public PlotName As String
Public PlotRange As Range

Sub Tester()
Range("TCKWH.V.1").Select
AddPlot ActiveSheet.Range("C9:C13,D9:O13")
End Sub

Sub AddPlot(rng As Range)
 With ActiveSheet.Shapes.AddChart
    PlotName = .Name
    .Chart.ChartType = xlLineMarkers
    .Chart.SetSourceData Source:=Range(rng.Address())

.Chart.HasTitle = True
.Chart.ChartTitle.Text = Range("C9")

End With
Set PlotRange = rng
Application.EnableEvents = False
rng.Select
Application.EnableEvents = True
End Sub

Sub RemovePlot(rng As Range)
If Not PlotRange Is Nothing Then
    If Application.Intersect(rng, PlotRange) Is Nothing Then
        On Error Resume Next
        rng.Parent.Shapes(PlotName).Delete
        On Error GoTo 0
    End If
End If

End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
RemovePlot Target
End Sub