Спасибо. А вот мой рассказ
Я собирался попробовать подсунуть такой диапазон, как если бы в Excel, держа Ctrl, щелкать мышкой по ячейкам через одну:
Код:
'код - Excel VBA
SeriesCollection.XValues = Worksheets("свод").Range("E2,G2,I2,K2,M2,O2,Q2,S2,U2")
Но это не сработало. Выяснилось, что диапазон для XValues должен быть непрерывным типа "E2:U2".
Далее я попытался "где-то сбоку" в той же строке, в подряд идущих ячейках AA2:AI2 написать формулы, ссылающиеся на разрозненные ячейки исходного диапазона:
Код:
Set cell = Worksheets("свод").Range("AA2")
For i = 22 To 15 Step -1
cell.FormulaR1C1 = "=RC[-" & i & "]"
Set cell = cell.Offset(0, 1)
Next i
SeriesCollection.XValues = Worksheets("свод").Range("AA2:AJ2")
И это получилось. В Excel на VBA.
При попытке же переноса в Аксапту происходили какие-то странные вещи с FormulaR1C1. В ячейку AA2 по этому моему алгоритму должна была попасть формула =RC[-22], которая в ячейке преображалась в формулу A1-стиля: =E2. И при прогоне в Excel всё так и происходило.
При попытке же задать формулы из Аксапты в ячейке AA2 вместо ожидаемого =E2 оказалось =IA1, что в R1C1-стиле соответствует =R1C235. Интересно, что 235 - это 257-22 (взгляните на исходную формулу =RC[-22] ). Ну, а 257 - это нечто рядом с 256. Есть ощущение, что значение в квадратных скобках, внешнее напоминающее контейнер или индекс массива, каким-то таинственным образом преображается. В общем, хочу всё это на досуге поисследовать.
НО! Даже если это наконец заработает, всё равно необходим дополнительный код, объем которого будет явно не меньше кода, формирующего строку outputRangeHeader.
Так что оставим в покое вопросы красивости. Ваше решение - простое, экономное и, самое главное, уже работающее.