|
![]() |
#1 |
Участник
|
А тут, как раз таки, надо воспользоваться COMDispFunction
X++: Com sheet; Com Range; COMDispFunction f; str s; COMVariant varArg1 = new COMVariant(); COMVariant varArg2 = new COMVariant(); COMVariant varArg3 = new COMVariant(); COMVariant varArg4 = new COMVariant(); COMVariant varArg5 = COMVariant::createNoValue(); COMVariant varRet = new COMVariant(COMVariantInOut::OUT_RETVAL, ComVariantType::VT_ERROR); ; Range = sheet.range("D10:AK258"); s = Range.Address(true, true, -4150); info(s); f = new COMDispFunction(app, "ConvertFormula", ComDispContext::Method); varArg1.bStr(s); varArg2.int(-4150); varArg3.int(1); varArg4.int(1); f.call(varArg1, varArg2, varArg3, varArg4, varArg5, varRet); info(varRet.bStr());
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#2 |
Moderator
|
Хм... а у меня как-то просто через COMVariant всё получилось..
X++: static void Job_TestExcelConvertFormula(Args _args) { COM xlApp; // Excel.Application COMVariant cv; ; xlApp = new COM('Excel.Application'); cv = xlApp.ConvertFormula('$A$1:$B$20', 1, -4150); info(cv.bStr()); // R1C1:R20C2 cv = xlApp.ConvertFormula('R1C1:R20C2', -4150, 1); info(cv.bStr()); // $A$1:$B$20 } |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
|
![]() |
||||
Тема | Ответов | |||
Построчный импорт из Excel через COM | 20 | |||
Ошибка COM-объекта | 15 | |||
Ошибка com 0x800A9C68 | 2 | |||
Работа с Excel через COM в DAX 4.0 | 4 | |||
DLL (BarCode) через COM | 4 |
|