Проблема с редактированием кода (Вызов неправильного листа) - Ошибка (Ошибка выполнения - «1004») Неверный параметр - PullRequest
0 голосов
/ 03 мая 2019

Этот код был найден из

Я попытался отредактировать его, имея таблицу в одной таблице и график на другом листе.

Оригинал:

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

1 Ответ

1 голос
/ 03 мая 2019

Спасибо всем, кто помог.

Я приложил решение, которое было создано с помощью всех.Ура

Sub PieMarkers()

    Dim chtMarker As Chart
    Dim chtMain As Chart
    Dim intPoint As Integer
    Dim rngRow As Range
    Dim lngPointIndex As Long
    Dim wk As Worksheet

     Application.ScreenUpdating = False

    Set wk = Sheets("Sheet1")
    Set chtMarker = ActiveSheet.ChartObjects("chtMarker").Chart
    Set chtMain = wk.ChartObjects("chtMain").Chart

    Set chtMain = wk.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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...