Создание диаграммы из данных массива, а не диапазона

возможно ли создать диаграмму (например, Double Y-Axis Line Chart), а не из диапазонов, но из данных массива? Если да, то как?

Да. Вы можете назначить массивы свойствам XValues и Values объекта Series на диаграмме. Пример:

 Dim c As Chart Dim s As Series Dim myData As Variant Set c = ActiveChart ' Assumes a chart is currently active in Excel... Set s = c.SeriesCollection(1) myData = Array(9, 6, 7, 1) ' or whatever s.Values = myData 

Вы можете назначить массивы для серии диаграмм в Excel 2007, но в предыдущих версиях я считаю, что длина каждой серии ограничена 255 символами. Метод, который я использовал, чтобы обойти это ограничение, показан в следующем примере случайного блуждания:

 Sub ChartArray() Dim x(0 To 1000, 0 To 0) As Double Dim y(0 To 1000, 0 To 0) As Double x(0, 0) = 0 y(0, 0) = 0 For i = 1 To 1000 x(i, 0) = i y(i, 0) = y(i - 1, 0) + WorksheetFunction.NormSInv(Rnd()) Next i Charts.Add ActiveChart.ChartType = xlXYScatterLinesNoMarkers With ActiveChart.SeriesCollection If .Count = 0 Then .NewSeries If Val(Application.Version) >= 12 Then .Item(1).Values = y .Item(1).XValues = x Else .Item(1).Select Names.Add "_", x ExecuteExcel4Macro "series.x(!_)" Names.Add "_", y ExecuteExcel4Macro "series.y(,!_)" Names("_").Delete End If End With ActiveChart.ChartArea.Select End Sub 

Альтернативный метод – назначать имена массивам (аналогично описанному выше обходному пути), а затем устанавливать серию, чтобы ссылаться на назначенные имена. Это работает нормально во всех версиях, пока вы сохраняете формат xls, но при сохранении в новых форматах xlsx / xlsm / xlsb существует ограничение длины для именованных массивов из 8192 символов.

  • Удаление содержимого с использованием переменной в функции диапазона
  • Для каждой ячейки в таблице диапазонов столбцов
  • Применение Определенная или объектная ошибка 3
  • C # / WPF: определение диапазона EXCEL по номерам строк и столбцов
  • Диапазон с использованием символьной переменной
  • Проверяйте значения в диапазоне до продолжения
  • строка диапазона excel vba от переменной
  • Назначение диапазонов в массив
  • VBA - принимать значения из выбранного диапазона (F $ 1: F $ 100) в массиве
  • Эксел-приложение Excel VBA копирует 2 диапазона
  • End (xlUp) работает только тогда, когда лист
  • Давайте будем гением компьютера.