C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Получение ячейки по имени, Получение ячейки по имени
loh
Отправлено: 10.05.2005, 17:18


Не зарегистрирован







sheet.OlePropertyGet("Cells",4,3).OlePropertySet("Value","test");-я делаю так — Все работает. Но ячейка 4, 3 имеет имя "XXX". А сделав так:
sheet.OlePropertyGet("Cells","XXX").OlePropertySet("Value","test");-не работает.

Помогите юзеру!
Arkadii
Отправлено: 11.05.2005, 15:05


Не зарегистрирован







Надо было в бейсике попробовать сначала записать Сервис-макросы- начать запись.

Вот это закрути в билдер

Application.Workbooks(1).Names.Item("Ark").Value = "Test"

и еще очень они хотят вместо String WideString Получать
кстати сервер память под нее выделяет но считает что клиент
будет ее сам освобождать. Это я к тому что если захочешь
чтото получить от туда имей ввиду что память тебе освобождать.

Ну вот както так:
//ЖЖЖЖЖЖЖ
String TGazAcad::PGetBstr(Variant Obj,Variant Key)
{
String Res;
try{
Variant Temp=Obj.OlePropertyGet(Key);
if(Temp.Type()== varOleStr)
{
Res=Temp;
SysFreeString(Temp);
return Res;
}
return NULL;
}

catch(EOleSysError* Msg)
{
ShowMessage("Ошибка"+Msg->Message+" "+(String)Msg->ErrorCode);
return NULL;
}
catch(...){ShowMessage("Произошла ошибка — PGetBstr ("+(String)Key+")");
return NULL;}

}
//ЖЖЖЖЖЖЖЖ



а это вызов
return PGetBstr(Documents.OleFunction("Item",1),"Name");

Это я отвлекся можно было так
Documents.OleFunction("Item",1),(WideString)"Name")
smile.gif
ну а ячейку по имени я тебе вроде показал в билдер сам засунешь
не охота мне его запускать.





Вернуться в Технологии COM/DCOM, ActiveX