Послушайте,
eeigor, это уже слишком.
Попробую перевести то, что я понял из Вашего "объяснения", на русский:
Задам-ка я вопрос про разделители, и начну его с того, что упомяну свойство, в котором этих разделителей вообще нет. Пусть все погадают, зачем я это свойство сюда засунул, вот смеху-то! Итак, вот оно:
oChart.EmbeddedObject.UsedRangeRepresentations
А теперь я ещё больше всех запутаю: напишу, как будто эти самые разделители в этом свойстве таки есть:
У меня в локализованной версии свойство UsedRangeRepresentations использует в качестве разделителя точку с запятой ";", но в оригинальной версии на Mac'е это же свойство использует запятую ",".
Ну, вот неправильно это!.. Везде должна быть запятая.
И теперь задам собственно вопрос.
По крайней мере, подскажите, как узнать тип разделителя и подставить нужный самостоятельно?
Так, меня попросили представить пример файла или данных. Почему не поиграть в загадки дальше! Пусть попытаются отгадать, зачем я выделяю красным окончание множественного числа в этом свойстве!
Так ведь "UsedRangeRepresentations"!
Ну, продолжим-с. Добавим в микс нечто неожиданное: упоминание свойства "Range" (неизвестного интерфейса: в отличие от UsedRangeRepresentations, они даже не смогут понять, о чём идёт речь, потому что свойство это есть у множества объектов в модели ООо/ЛО, да и тип его различный... и присвоим ему значение неопределённой функцией. Пусть оно выглядит абсолютно чужеродно и не связано с предыдущим текстом - так загадочнее!)
У меня вот так:
oChart.Ranges = oXYAddresses()
Но шутки шутками, а мне, похоже, до сих пор не ответили на мой такой загадочный вопрос. Что они, совсем непонятливые, что ли? Ну и что, что я не задал его внятно. Я считаю, что они должны уже были всё понять и ответить (независимо от того, что разделителей на самом деле несколько: разделитель аргументов функций в Calc, разделители столбцов и строк в инлайновых массивах Calc... я могу не знать всего этого, но я всё равно не считаю, что я должен прикладывать какие-то усилия, чтобы формулировать задачу внятно).
Просто диапазонов может быть несколько. Но речь только о разных разделителях в разных версиях Calc'а. Они действительно разные.
Так как его, разделитель, считать из системных настроек?
А, да! Всё же давай-ка я отредактирую и приведу вариант строки. Правда, они всё равно не догадаются, откуда эта строка взялась. Заодно приведу название свойства немного "подредактированным", чтоб увлекательность сохранить:
Для примера (UsedRangeRepresentation):
"$'Анализ данных'.$C$2;$'Анализ данных'.$C$4:$C$5;$'Анализ данных'.$C$27"
Так, он всё равно не понимает. Да и как он может понять, дитё неразумное. Напишу-ка я "объяснение", которое никак не прояснит, при чём тут разделители, о которых собственно вопрос, и как связаны между собой эти свойства: ведь из того, что я напишу ниже, связь никак не следует. Зачем указывать, например, какой вообще объект имеется ввиду (каким кодом он получен) - так можно будет догадаться, что ожидает программа в этом свойстве, и было бы слишком просто!
В Ranges присваивается массив диапазонов точек (x, y), а UsedRangeRepresentations(0) возвращает диапазоны только координат X, и UsedRangeRepresentations(1) - для Y.
Повторюсь для тупых. Он, наверное, всё ещё не понял, что там запятая меняется на точку с запятой в зависимости от ... чего-то (я же не говорю даже, как эта точка с запятой там появилась, и куда она потом идёт. Я думаю, что мой вопрос простой, несмотря на игру в шарады; моё незнание того, что и разделителей несколько, и зависеть они могут от разного, не извиняет глупости отвечающего, который до сих пор не воспользовался ясновидением, чтобы понять наконец что мне нужно!)"$'Анализ данных'.$C$2;$'Анализ данных'.$C$4:$C$5;$'Анализ данных'.$C$27"
На Mac'е в английской версии вместо точки с запятой будет запятая. Вот только в этом вопрос.
А теперь я приведу этот вот убийственный аргумент, который звучал как-то уже несколько месяцев назад. Дело в том, что у меня есть какие-то невнятные проблемы - я пишу на какой-то ультрабезопасной системе, не подключённой к интернету, а задаю вопросы с телефона. И это извиняет весь тот бред, который я пишу, и моё неумение задавать вопросы, и нежелание приготовить тестовые примеры, скажем, дома или у друга (где есть интернет), и вообще пусть мои проблемы станут вашими проблемами!
Просто я пишу с телефона.
Макрос действительно выводит сообщения со строками из свойства UsedRangeRepresentations диаграммы.
И вот он, час X! Открою, наконец, что "разделители" были не связаны изначально с UsedRangeRepresentations, и я, кажется, добавляю их сам ... для чего? Напишу, что "для наглядности и визуального контроля". Опять напишу "с включёнными диапазонами из вышеуказанного свойства" (нет, я не умею писать "с включёнными диапазонами из свойства X": ведь "вышеуказанное" звучит круто и загадочно, а указать конкретно, пусть и с повторами, было бы слишком точно, что для программиста - страшный грех!).
Всё работает. Диапазонов много (из-за разрывов – исключенных точек). Однако для наглядности и визуального контроля дополнительно выводится строка с включёнными диапазонами из вышеуказанного свойства. Для сокращения текста и повышения читабельности из этой строки удаляются ссылки на имя листа, знаки $ (абсолютной адресации) и после РАЗДЕЛИТЕЛЯ СПИСКА вставляется ПРОБЕЛ.
Ну а теперь, когда я создал впечатление, что строка эта с разделителями нужна число визуально, как упомянуто, "для наглядности и визуального контроля", снова поставлю всех в тупик: оказывается, не всё так просто (ну, казалось бы, какая разница в визуальном контроле: запятая или точка с запятой? ан нет, "возникает проблема". Какая проблема, спросите вы? нееее, я не такой простачок, чтобы внятно писать "создаю строку конкатенацией строк из массива UsedRangeRepresentations объекта Z разделителем Y; записываю полученную строку в свойство K объекта M; на системе с локалью A и языком B это работает, а если локаль C и язык интерфейса D - выдаёт ошибку "..."." Просто напишу "проблема с разделителем". И код макроса целиком - это слишком жирно (я с телефона, не помните, что ли???))
Но когда я передаю приложение другому пользователю, возникает проблема с разделителем. Поэтому надо изменить значение константы DELIMITER (= ","). Вот я и спросил: как избавиться от этого шага, и решить проблему с разными разделителями.
Короче, я признаюсь: я слишком глуп, чтобы играть в весёлую игру, предложенную уважаемым
eeigor. Но если бы моя восьмилетняя дочь выражала свои мысли подобным образом, я серьёзно задумался бы о необходимости нанять репетитора.