Как реализовать циклический диапазон в графике - PullRequest
1 голос
/ 11 июля 2019

По сути, я пытаюсь автоматизировать одну из задач моей работы в макросе, который берет некоторые данные и помещает их в кластеризованную столбчатую диаграмму из 5 серий, чтобы сделать визуально привлекательный способ представления информации. Проблема заключается в том, что длина диапазона изменяется от недели к неделе в зависимости от количества обрабатываемых деталей. Я просто сталкиваюсь с небольшой ошибкой при добавлении значений ряда, так как Excel не принимает мой строковый аргумент. Ниже то, что у меня есть.


Sub FilterRankAndCreateChart()
Dim i As Integer
Dim rnge As String

i = 0

Sheets("MC Spares Risk Calculations").Select
Range("A1").Select
Do Until ActiveCell.Value = ""
    ActiveCell.Offset(1, 0).Select
    i = i + 1
Loop

Let rnge = "$J$2:$J$" & i

Worksheets("MC Risk Chart").Activate
ActiveSheet.ChartObjects(1).Activate
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.FullSeriesCollection(1).Name = "=""Low Risk"""
    ActiveChart.FullSeriesCollection(1).Values = "='Risk Charts'!rnge"
    ActiveChart.FullSeriesCollection(1).XValues = "='Risk Charts'!$B$2:$B$149"

Значение rnge, отображаемое в непосредственном окне, является правильным. но когда я использую rnge для определения значений, я получаю ошибку 1004 (ошибка приложения или объекта). Любое понимание того, как это исправить?

1 Ответ

0 голосов
/ 11 июля 2019

Просто чтобы закрыть этот вопрос:

1: Как уже отмечалось, не нужно зацикливаться, чтобы найти последнюю ячейку.

2: из документации Series.Values можно взять объект Range.То же самое для Series.XValues.

With Worksheets("MC Spares Risk Calculations")
    Dim lastRow as Long
    lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row

    Dim rng as Range
    Set rng = .Range("J2:J" & lastRow)
End With

With Worksheets("MC Risk Chart").ChartObjects(1).Chart
    ...
    .FullSeriesCollection(1).Values = rng
    .FullSeriesCollection(1).XValues = rng2 ' another Range object
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...