Некоторые вопросы по Excel
1) В .h
В .cpp
{
try{
Variant result,cur;
cur = Sh.OlePropertyGet("Cells",Row,Column);
result = cur.OlePropertyGet("Value");
return result;
}catch(...) {;}
}
Код работает, но выдается предупреждение:
“Function should return a value”. Какая у меня закралась ошибочка?
2) Эту строку «upp» перевести в прописные буквы: В макросе код такой:
Я пытаюсь перевести на Си.
Ошибка.
3)Нужно перевести на Си фразу
Как это на Билдере?
Прошу не футболить меня. По Excel-у знаю очень много, но идет много нестандартных вопросов, которые не могу составить с помощью подсказки Билдера. И на работе нет доступа к Интернету. Поэтому дома времени на раскручивание вопроса очень мало. Именно поэтому прошу помощи.
Я пытаюсь перевести на Си.
Вы в дебаггере пробовали посмотреть результат приведения Variant к AnsiString?
Вот эта строчка мне понравилась особо :D Уж хотя бы так
Вы в дебаггере пробовали посмотреть результат приведения Variant к AnsiString?
Вот эта строчка мне понравилась особо :D Уж хотя бы так
Спасибо. Меня путает количество ковычек в коде VBA. Утром опробую работу кода.
strcpy(str, "=UPPER(\"upp\")");
Rang.OlePropertySet("FormulaR1C1",str);
Потрудитесь посмотреть код с начала. upp - это не значение которое надо привести к верхнему регистру, а переменная типа AnsiString.
2 richel
Если говорите про ошибки, нельзя ли поподробнее о них. Скорее всего у вас неправильно составлена функция рабочего листа
требуется:
[COLOR=seagreen]=UPPER(something)[/COLOR]
есть
[COLOR=seagreen]=UPPERsomething[/COLOR]
попробуйте написать так
Потрудитесь посмотреть код с начала. upp - это не значение которое надо привести к верхнему регистру, а переменная типа AnsiString.
) + upp + ")").c_str());[/CODE]
Ok
strcpy(str, "=UPPER(\"");
strcat(str, upp.c_str());
strcat(str, "\")");
Rang.OlePropertySet("FormulaR1C1",str);
Ok
strcpy(str, "=UPPER(\"");
strcat(str, upp.c_str());
strcat(str, "\")");
Rang.OlePropertySet("FormulaR1C1",str);
Зачем это все, если в любом случае используется AnsiString?
Вы чувствуете разницу между вашим кодом и моим?
И будь добр, отъе...
Будешь хамить - пойдешь в бан.
особенно в контексте вашего предыдущего поста :)
Будешь хамить - пойдешь в бан.
Уже пошел. Хамов на форуме не нужно.
По первому пункту текст предупреждения я указала.
По 2-му - ошибка была в типе переменной.
По 3-му - просто не могу догадаться, как составить код не чисто на Си, а на Си Билдере.
Поэтому тип AnsiString здесь уместен.
Спасибо за ответы. Завтра проверю работу кодов.
:)
По 3-му - просто не могу догадаться, как составить код не чисто на Си, а на Си Билдере.
Я вас прошу, нет я вас просто умоляю... Не путайте язык программирования, среду программирования и библиотеки. Есть [COLOR=red]среда[/COLOR] Borland C++ Builder, в котором можно писать на [COLOR=red]языках[/COLOR] С и С++ и использовать [COLOR=red]библиотеки[/COLOR] VCL(откуда родом AnsiString), STL и проч.
Я вас прошу, нет я вас просто умоляю... Не путайте язык программирования, среду программирования и библиотеки. Есть [COLOR=red]среда[/COLOR] Borland C++ Builder, в котором можно писать на [COLOR=red]языках[/COLOR] С и С++ и использовать [COLOR=red]библиотеки[/COLOR] VCL(откуда родом AnsiString), STL и проч.
Вы правы, извините, что ввела в заблуждение. Я просто не первый год на этом форуме, думала, что все уже знают, что программирую с среде Borland C++.
По 2 пункту - _nоrth_ , ты совершенно прав, вместо UPPER нужно написать ПРОПИСН. Тогда все работает. Путает макрос Эксела.
3-й пункт снимаю, т.к. я решила этот вопрос по другому. Просто сделала Select конкретной ячейки. Одно и то же, мне на нее нужно было перейти.
Остается разобраться в 1-м пункте. По нему еще никто не высказался.
Вы правы, извините, что ввела в заблуждение. Я просто не первый год на этом форуме, думала, что все уже знают, что программирую с среде Borland C++.
По 2 пункту - _nоrth_ , ты совершенно прав, вместо UPPER нужно написать ПРОПИСН. Тогда все работает. Путает макрос Эксела.
3-й пункт снимаю, т.к. я решила этот вопрос по другому. Просто сделала Select конкретной ячейки. Одно и то же, мне на нее нужно было перейти.
Остается разобраться в 1-м пункте. По нему еще никто не высказался.
Можно попробовать изменить код так:
{
Variant result,cur;
try
{
cur = Sh.OlePropertyGet("Cells",Row,Column);
result = cur.OlePropertyGet("Value");
}
catch(...) {;}
return result;
}
Можно попробовать изменить код так:
{
Variant result,cur;
try
{
cur = Sh.OlePropertyGet("Cells",Row,Column);
result = cur.OlePropertyGet("Value");
}
catch(...) {;}
return result;
}
Да, это так. Сама не догадалась.
Огромное всем спасибо за помощь. Все вопросы решены. И данная информация по Экселу в интернете не лишняя.:)