Здравствуйте, morok, Вы писали:
M>В общем достаточно неудобная вещь. Получается нельзя напрямую использовать результат одной функции(Name.RefersTo()) как аргумент другой функции(Application.GetRange(Name.RefersTo()), сначала необходимо результат преобразовать, а потом уже использовать. Мне кажется это какая-то недоработка компании MS. Хотя может я просто не в курсе чего-то.
Мне надо еще немного посмотреть, но мне всегда казалось, что, например, проблемы на несвязанных диапазонах с RefersToRange возникают именно в Russian версии, именно из-за чехарды с разделителями диапазонов —
, или
; Сейчас под рукой нет English версии, чтобы проверить, думаю, что в ней не должно быть проблем с несвязанными диапазонами?
Этот вариант я проверила на Excel XP — Russian — вроде бы работало, похоже, что зависит от версии Excel'я, где-то еще и кавычки всплывают
E_> _bstr_t sAddr1 = r1->GetAddress(_variant_t(true), _variant_t(true),Excel::xlA1, _variant_t(true) );
E_> _bstr_t sAddr2 = r2->GetAddress(_variant_t(true), _variant_t(true),Excel::xlA1, _variant_t(true) );
E_> _bstr_t sAddr = _bstr_t("=") + sAddr1 + _bstr_t(";") + sAddr2;
E_> NamePtr name = pBook->GetNames()->Add(_variant_t("TestName"), sAddr);
E_> RangePtr foundRange = pXL->GetRange( _variant_t("TestName") );
Вообще-то не замечала, что с кавычками тоже проблемы, надо покопать, с запятой и точкой с запятой точно все время вылезают коллизии. Недавно попадалось
здесьАвтор: Леонид
Дата: 28.01.05