Автор | Сообщение |
|
| постоянный участник
|
Пост N: 33
Зарегистрирован: 13.09.07
|
|
Отправлено: 26.08.10 18:50. Заголовок: Опять о переводе макросов Excell на Harbour
Частично тема эта уже поднималась, но полной ясности ( по крайней мере у меня ) так и не появилось. Проштудировал неплохую статью по этой теме( правда касается она VFP ) на http://www.codenet.ru/db/vfp/Excel-To-FoxPro.php<\/u><\/a>, но и после нее осталась вопросы. Например почему оператор 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
[только новые]
|
|
|
| постоянный участник
|
Пост N: 209
Зарегистрирован: 06.02.07
|
|
Отправлено: 27.08.10 12:11. Заголовок: leo пишет: Например..
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<\/u><\/a> там парень пишет (и как раз в связи с Numberformat) про "не вылетает у тех, у кого Excel 2003 - вылетает у тех, у кого стоит Excel 2007..." про Autofilter - применял, но без доп. параметров
|
|
|
|
| постоянный участник
|
Пост N: 34
Зарегистрирован: 13.09.07
|
|
Отправлено: 27.08.10 13:17. Заголовок: gustow пишет: Есть ..
gustow пишет: цитата: | Есть подозрение, что если вылетает на NumberFormat, то из-за применения точки как разделителя от дробной части (хотя в макросе написано именно через точку). |
| Это правда, но я это взял из макроса Excell. Вот он Range("C2:E44").Select Selection.NumberFormat = "#,##0.00_ ;[Red]-#,##0.00 " Т.е. мой вопрос состоит в следующем: есть макрос, который сформирован Excel, в котором записаны мои действия. Как его правильно перевести на harbour? Кстати замена точки на запятую не помогает в моем случае когда нужно выделить красным цветом отрицательные числа.
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.09.10 18:26. Заголовок: А у меня еще более п..
А у меня еще более прозаический вопрос: Как получить значение ячейки, чтобы сравнить его с какой-нибудь константой или на худой конец проверить - не пустая ли ячейка. Вот фрагмент исходного макроса 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
|
|
|
|
| |
Не зарегистрирован
Зарегистрирован: 01.01.70
|
|
Отправлено: 28.09.10 19:40. Заголовок: Сам нашел ответ, над..
Сам нашел ответ, надо дописать value в команду: IF EMPTY(oExcel:Selection:value())
|
|
|
|
| постоянный участник
|
Пост N: 1562
Зарегистрирован: 12.09.06
|
|
Отправлено: 28.09.10 21:44. Заголовок: inik296 Спасибо за ..
inik296 Спасибо за поднятую тему ! Будем пользоваться.....
|
|
|
|