Этот код был найден из
Я попытался отредактировать его, имея таблицу в одной таблице и график на другом листе.
Оригинал:
Sub PieMarkers()
Dim chtMarker As Chart
Dim chtMain As Chart
Dim intPoint As Integer
Dim rngRow As Range
Dim lngPointIndex As Long
Application.ScreenUpdating = False
Set chtMarker = ActiveSheet.ChartObjects(“chtMarker”).Chart
Set chtMain = ActiveSheet.ChartObjects(“chtMain”).Chart
Set rngRow = Range(ThisWorkbook.Names(“PieChartValues”).RefersTo)
For Each rngRow In Range(“PieChartValues”).Rows
chtMarker.SeriesCollection(1).Values = rngRow
chtMarker.Parent.CopyPicture xlScreen, xlPicture
lngPointIndex = lngPointIndex + 1
chtMain.SeriesCollection(1).Points(lngPointIndex).Paste
Next
lngPointIndex = 0
Application.ScreenUpdating = True
End Sub
Моя правка должна была добавить
Dim wk As Worksheet
Вслед за
Set wk = Worksheets("Sheet1")
Где будет график (на листе 1)
Вслед за
Set chtMain = wk.ChartObjects("chtMain").Chart
Эта строка кода является проблемой
chtMarker.SeriesCollection(1).Values = rngRow