Добавление Datapoint в таблицу Excel с VBA - PullRequest
3 голосов
/ 22 сентября 2009

У меня есть объект диаграммы с 3 сериями. Ряды получают значения Y из диапазонов C1: C10, D1: D10 и E1: E10. Значение зависит от значений в A1: A10 (например, C1 = A1 + 6); но я сопоставляю значения со значениями в B1: 10 (это график нормальных логарифмов).

Я вычисляю значения в VBA. Поскольку в A1: A10 имеется только дискретное количество точек, я хотел бы добавить несколько дополнительных точек интереса на график. Поэтому, если A1: A10 содержит целые числа от 1 до 10, я хотел бы построить десятичное число, например 3,5, без добавления каких-либо новых строк в таблицу.

Осмотревшись, я бы предположил, что это будет что-то с методом Расширить ( MSDN - Расширить метод ), но я не уверен, как:

  1. Расширить конкретную серию (например, добавить только точку к серии C1: C10 и D1: D10
  2. Как добавить точку данных без требующий добавить ячейку к лист.

Любая помощь будет оценена. Спасибо

1 Ответ

4 голосов
/ 05 октября 2009

Вопрос 2

Вы можете установить значения для отдельной серии, используя свойство value объекта серии.

Однако в справке говорится, что значения в серии могут быть либо

a диапазон на листе или массив постоянных значений ,

но не оба .

Это означает, что если вы хотите указать значения ряда в виде диапазона, такого как C1: C10, то, я думаю, вам придется добавить ячейки, если вы хотите добавить точки данных в серии.

Если вы не хотите добавлять ячейку, вы должны указать все значения как константу массива.

Вопрос 1

Чтобы добавить точки данных к определенной серии, я считаю, что вам нужно выбрать серию и изменить свойства Значения и XValues ​​.

Пример:

Поместите эти данные в «Лист1» в Excel и отобразите их как «Диаграмма1». y1 будет серией 1, y2 будет серией2, а y3 будет серией 3.

     A    B     C     D
1    x    y1    y2    y3
2    1    10    100   400
3    2    20    200   500
4    3    30    300   600

Теперь давайте добавим точку данных к y2.

     A    B     C     D
1    x    y1    y2    y3
2    1    10    100   400
3    2    20    200   500
4    3    30    300   600
5    4          1000

Мы должны выбрать серию (по номеру или по имени, в данном случае 2 или «y2») и установить для свойства Value значение «C2: C5»

'using ranges
Charts("chart1").SeriesCollection("y2").Values = Worksheets("Sheet1").Range("C2:C5")

'using array constant
Charts("chart1").SeriesCollection("y2").Values = Array(100, 200, 300, 1000)

Мы также изменим свойство XValues, чтобы каждое значение имело значение XValue

'using ranges
Charts("chart1").SeriesCollection("y2").XValues = Worksheets("Sheet1").Range("A2:A5")

'using array constant
Charts("chart1").SeriesCollection("y2").XValues = Array(1, 2, 3, 4)

Примечание:

Мы можем иметь значения в качестве диапазона и XValues ​​в качестве константы массива или наоборот.

Мы также можем иметь значения и XValues ​​в качестве диапазонов или оба в качестве констант массива.

Мы не можем иметь значения в качестве диапазона и константу массива.

Мы не можем иметь XValues ​​в качестве диапазона и константы массива.

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