Переменные в массивах в VBA Excel - PullRequest
0 голосов
/ 08 ноября 2010

Я строю макрос для построения графиков отчетов, созданных COGNOS. К сожалению, эти отчеты предоставляются другой командой.

Данные для диаграмм предоставляются в виде Excel, но заголовки могут меняться в каждом отчете, а также может меняться количество источников данных.

Это означает, что за одну неделю данные с понедельника по пятницу могут включать 6 источников, например. Столбцы от А до G (понедельник - пятница) и строки от 1 до 6

Следующая таблица данных создается COGNOS на 2 строки ниже этого, например. Ряд 8

но на следующей неделе будет 8 источников данных, поэтому таблица намного длиннее, а вторая таблица находится в строке 10

Используя массив, можно ли исправить диаграммы для сбора там данных из ячейки заголовка для каждой таблицы, где бы она ни находилась, в поставляемом Excel?

1 Ответ

0 голосов
/ 16 ноября 2010

Используйте эту функцию для подсчета строк данных, которые вам нужны для построения графика.Передайте ему ссылку на первый элемент в таблице, и он повторно запустит счетчик строк.

Public Function CountRows(ByRef r As Range) As Integer
    If IsEmpty(r) Then
        CountRows = 0
    ElseIf IsEmpty(r.Offset(1, 0)) Then
        CountRows = 1
    Else
        CountRows = r.Worksheet.Range(r, r.End(xlDown)).Rows.count
    End If
End Function

Чтобы выбрать несколько строк, в столбцах используется, например, Range("A2").Resize(20,8), чтобы расширить диапазон от "A2"включить 20 строк и 8 столбцов.Остальное вы собираете программно, подсчитывая строки и столбцы и выбирая соответствующие значения для ваших диаграмм.Обратите внимание, что лучше всего установить свойства .XSeries и YSeries для серии графиков, используя стиль RC.Пример: .YSeries="='Sheet1'!R2C3:R101C3", где вы устанавливаете соответствующие значения текста на основе того, что вы измеряете для таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...