![]() |
#7 |
Moderator
|
Спасибо. А вот мой рассказ
![]() Я собирался попробовать подсунуть такой диапазон, как если бы в Excel, держа Ctrl, щелкать мышкой по ячейкам через одну: Код: 'код - Excel VBA SeriesCollection.XValues = Worksheets("свод").Range("E2,G2,I2,K2,M2,O2,Q2,S2,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") При попытке же переноса в Аксапту происходили какие-то странные вещи с FormulaR1C1. В ячейку AA2 по этому моему алгоритму должна была попасть формула =RC[-22], которая в ячейке преображалась в формулу A1-стиля: =E2. И при прогоне в Excel всё так и происходило. При попытке же задать формулы из Аксапты в ячейке AA2 вместо ожидаемого =E2 оказалось =IA1, что в R1C1-стиле соответствует =R1C235. Интересно, что 235 - это 257-22 (взгляните на исходную формулу =RC[-22] ). Ну, а 257 - это нечто рядом с 256. Есть ощущение, что значение в квадратных скобках, внешнее напоминающее контейнер или индекс массива, каким-то таинственным образом преображается. В общем, хочу всё это на досуге поисследовать. НО! Даже если это наконец заработает, всё равно необходим дополнительный код, объем которого будет явно не меньше кода, формирующего строку outputRangeHeader. Так что оставим в покое вопросы красивости. Ваше решение - простое, экономное и, самое главное, уже работающее. |
|