У меня есть следующий код, где я пытаюсь изменить свойство .Placement диаграммы, озаглавленной «MyChart».
выделенная строка приводит к ошибке, в которой говорится: «Элемент с указанным именем не найден».
Как видно из рисунка, я также попытался:
MyChart.Placement = xlFreeFloating
Однако, насколько я понимаю что .Placement является свойством ChartObject, а не самой Chart.
Вот код из pi c выше:
'Format Main Title
MyChart.ChartTitle.Font.Size = 14
MyChart.ChartTitle.Font.Bold = True
MyChart.ChartTitle.Font.Name = "TimesNewRoman"
'Set FreeFloating Property
ActiveSheet.ChartObjects("MyChart").Placement = xlFreeFloating
'MyChart.Placement = xlFreeFloating
Как я могу изменить свойство .Placement для MyChart (то есть, как я могу изменить свойство .Placement для определенной диаграммы по имени)? Любая помощь приветствуется.
====================================== ==========================================
В ответ на предлагаемое решение: Когда Я пытаюсь этот код, я получаю это сообщение об ошибке:
Не знаю Я не понимаю, как имя графика может быть чем угодно, кроме «MyChart». Вот код, который создает этот график:
Set MyChart = ActiveSheet.ChartObjects.Add(Left:=Cells(Row0 + (j3 - 1) * 22, Col0 + ChartStart + 1 + (k3 - 1) * 7).Left, _
Top:=Cells(Row0 + (j3 - 1) * 22, Col0 + ChartStart + 1 + (k3 - 1) * 7).Top, _
Width:=310, _
Height:=300).Chart
MyChart.ChartType = xlXYScatter
MyChart.HasLegend = False
With MyChart
'XAxis Label
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = XName(i3, 1)
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Font.Bold = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Font.Name = "TimesNewRoman"
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Font.Size = 10
'YAxis Label
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = YName
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Font.Bold = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Font.Name = "TimesNewRoman"
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Font.Size = 10
End With
'Remove Gridlines
For Each axs In MyChart.Axes
axs.HasMajorGridlines = False
axs.HasMinorGridlines = False
Next
With MyChart.SeriesCollection.NewSeries
.Name = "Scatterplot of " & YName & " by " & XName(i3, 1)
.Values = y5
.XValues = WorksheetFunction.Index(X4, 0, i3 + 1)
'Format Markers
.MarkerBackgroundColorIndex = 2
.MarkerForegroundColorIndex = 5
.MarkerStyle = 8
End With
'5% around the edges
'XXX 999
'Vertical Axes NOT at zeros
If WorksheetFunction.Min(WorksheetFunction.Index(X4, 0, i3 + 1)) < 0 Then
MyChart.Axes(xlCategory).CrossesAt = MyChart.Axes(xlCategory, xlPrimary).MinimumScale
End If
'Format Main Title
MyChart.ChartTitle.Font.Size = 14
MyChart.ChartTitle.Font.Bold = True
MyChart.ChartTitle.Font.Name = "TimesNewRoman"
'Set FreeFloating Property
ActiveSheet.ChartObjects("MyChart").Placement = Excel.XlPlacement.xlFreeFloating
'MyChart.Placement = xlFreeFloating
'Set FreeFloating Property
' ActiveChart.Select
' Selection.Placement = xlFreeFloating