Форум » [x]Harbour » Опять о переводе макросов Excell на Harbour » Ответить

Опять о переводе макросов Excell на Harbour

leo: Частично тема эта уже поднималась, но полной ясности ( по крайней мере у меня ) так и не появилось. Проштудировал неплохую статью по этой теме( правда касается она VFP ) на http://www.codenet.ru/db/vfp/Excel-To-FoxPro.php, но и после нее осталась вопросы. Например почему оператор oSheet:COLUMNS(4):COLUMNWIDTH := 15, а на oSheet:Columns(3):NumberFormat := "#,##0.00" программа вылетает в ошибку. Или как например перевести макрос Range("A1").Select Selection.AutoFilter Selection.AutoFilter Field:=5, Criteria1:="<0", Operator:=1 на Harbour. Короче вопрос такой: нет ли у кого-то ссылки на статью, в которой обьясняется как переводить макросы на Harbour. Если такой статьи нет, может те, для кого эти вопросы давно пройденный этап, расскажут как это делается на практике?

Ответов - 5

gustow: leo пишет: Например почему оператор oSheet:COLUMNS(4):COLUMNWIDTH := 15, а на oSheet:Columns(3):NumberFormat := "#,##0.00" программа вылетает в ошибку. Не совсем понял - на какой именно строке вылетает (где ColumnWidth или где NumberFormat)? Есть подозрение, что если вылетает на NumberFormat, то из-за применения точки как разделителя от дробной части (хотя в макросе написано именно через точку). Если пишу как "# ##0,00" - все ОК. (но, сорри, пользую "антиквариат" - Office-97, т.ч. ...) Кстати, загуглил на "NumberFormat Excel вылетает" - вынесло в одной из первых ссылок на http://axforum.info/forums/showthread.php?t=22917 там парень пишет (и как раз в связи с Numberformat) про "не вылетает у тех, у кого Excel 2003 - вылетает у тех, у кого стоит Excel 2007..." про Autofilter - применял, но без доп. параметров

leo: gustow пишет: Есть подозрение, что если вылетает на NumberFormat, то из-за применения точки как разделителя от дробной части (хотя в макросе написано именно через точку). Это правда, но я это взял из макроса Excell. Вот он Range("C2:E44").Select Selection.NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 " Т.е. мой вопрос состоит в следующем: есть макрос, который сформирован Excel, в котором записаны мои действия. Как его правильно перевести на harbour? Кстати замена точки на запятую не помогает в моем случае когда нужно выделить красным цветом отрицательные числа.

inik296: А у меня еще более прозаический вопрос: Как получить значение ячейки, чтобы сравнить его с какой-нибудь константой или на худой конец проверить - не пустая ли ячейка. Вот фрагмент исходного макроса excel: For i = 2 To 10 If IsEmpty(Cells(i, 2)) = False Then ' есть непустое поле Ok:=.t. End next //попытка получить значение ячейки в xHarbour For i = 2 To 10 oText:=oExcel:Cells(i, 2):SELECT IF EMPTY(oExcel:Selection) //тут все равно получается доступным не ячейка а объект tole... Ok:=.t. End next


inik296: Сам нашел ответ, надо дописать value в команду: IF EMPTY(oExcel:Selection:value())

Andrey: inik296 Спасибо за поднятую тему ! Будем пользоваться.....



полная версия страницы