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
У меня есть этот код, который создает граф на основе информации, которая была принята с помощью флажка. Но любая учетная запись, которую вы не выбираете, появляется как запись «пустой» легенды Есть ли код макроса для удаления «пустых» записей легенд?Excel CheckBox Выбрать диапазон диаграммы
вы устанавливаете 'Source Range: = Range ("C9: О13")'. Вместо того, чтобы устанавливать данные «Source», вам нужно будет добавлять/удалять данные 'Series', используя свойства' Series.XValues' и 'Series.Values' и' Series.Name'. –