Форум » [x]Harbour » Снова EXCEL » Ответить

Снова EXCEL

Dima: Ранее с Excel из Harbour ни когда не работал. Поставили тут задачу. У некоторых поставщиков есть определенные формы заказов. Набраны они в Excel. Сейчас народ руками заполняет эти формы и шлет по электронке поставщикам. Задача сводится к тому что бы в этих формах находить нужные коды товара и в нужной ячейке проставлять заказ. Может ткнет кто носом с чего начать что бы не напороться на грабли. Спасибо Сами формы тут http://zalil.ru/33279066

Ответов - 300, стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 All

Dima: Неа. Неверный аргумент COLORS Ошибка WinOLE/1007 Код DOS ошибки -2147352562 Я еще пробовал ячейку красить так oSheet:Cells(jj,2):Interior:Colors:=RGB(234,234,234) // до лампочки , все равно 25 процентов серого

Haz: странно у меня сработало тестил так oExcel:ActiveWorkbook:Colors(15, RGB(234,100,200) ) oSheet:Cells(1,1):Interior:ColorIndex:=15

Dima: Не фига тогда не понимаю ;) [pre2] Вот так не компилится OExcel:ActiveWorkbook:Colors(15):=RGB(234,234,234) и вот так не компилится OExcel:ActiveWorkbook:Colors(15):RGB(234,234,234) Компилится только толку ноль от такого вызова OExcel:ActiveWorkbook:Colors(15) Компилится , но в работе падает с ошибкой OExcel:ActiveWorkbook:Colors(15,RGB(234,234,234) ) [/pre2]


Haz: так тоже сработало oExcel:ActiveWorkbook:SET("Colors", 15, RGB(234,100,200) ) PS. мож от версии экселя зависит ...

Dima: Haz пишет: oExcel:ActiveWorkbook:SET("Colors", 15, RGB(234,100,200) ) Жесть а у меня снова ошибка ОЛИ

Dima: Вероятно дело не в Harbour а в версии EXCEL. У меня 2003

Haz: Dima пишет: Вероятно дело не в Harbour а в версии EXCEL. У меня 2003 и не просто в версии , а можбыть в сборке. На одной работает в 2003 на другой нет , на 2007 вроде везде работает

Haz: и так тоже работает oExcel:Selection:Interior:Color := Rgb(240, 240, 240) только Color , а не ColorS

Dima: Haz Получается что в моем EXCEL из Harbour я не смогу сменить 15-й ColorIndex на свой цвет

Dima: Haz пишет: oExcel:Selection:Interior:Color := Rgb(240, 240, 240) Игорь я писал выше что да такой вызов работает , но заливка получается не Rgb(240, 240, 240) а такая же как с ColorIndex:=15

Haz: сможешь, но пока не совсем ясно как . Макрос ведь работает , значит меняет Мож Excelсменить

Haz: Ты писал через "S" oSheet:Cells(jj,2):Interior:Colors:=RGB(234,234,234) // до лампочки , все равно 25 процентов серого

Haz: Сорь, я уехал ..... а Excel смени

Dima: Haz пишет: Ты писал через "S" Да то моя очепятка на форуме. В реале без этой буквы. Вот так Interior:Color:=RGB(234,234,234) и заливка получается БЕЛОЙ а не серый 15 %

nick_mi: вот так получается серой только последние две ячейки obook:sheets(1):cells(2,2):interior():color := RGB(234,234,234) obook:sheets(1):cells(3,3):interior():color := RGB(230,230,230) obook:sheets(1):cells(4,4):interior:color := RGB(225,225,225) obook:sheets(1):cells(5,5):interior:color := RGB(220,220,220) obook:sheets(1):cells(6,6):interior:color := RGB(210,210,210) почему так - хз, наверное, Мелкософт рулит

Dima: Ладно поставим вопрос иначе ;) Имеем макрос в EXCEL вида ActiveWorkbook.Colors(15) = RGB(234, 234, 234) В самом EXCEL он срабатывает правильно и со цветами порядок. Как правильно сказать Harbour что бы такой макрос заработал. EXCEL 2003 1. OExcel:ActiveWorkbook:Colors(15):RGB(234,234,234) // Не компилится Harbour-ом 2. OExcel:ActiveWorkbook:Colors(15, RGB(234,234,234)) // Падает прога с ошибкой WinOLE/1007 3. OExcel:ActiveWorkbook:SET("Colors", 15, RGB(234,234,234)) // Падает прога с ошибкой WinOLE/1007 Есть еще варианты ?

Andrey: Haz пишет: и не просто в версии , а можбыть в сборке. На одной работает в 2003 на другой нет , на 2007 вроде везде работает Вопрос может и не совсем в тему, но очень необходим. А как у себя из программы узнать версию EXCEL и WinWord ? Чтобы юзеру в красном окошке сообщить, что может случиться фигня из-за старой версии....

Dima: Andrey пишет: А как у себя из программы узнать версию EXCEL ? oExcel:Version // у меня 11 PS 12 - Excel 2007 11 - Excel 2003 10 - Excel 2000 и тд Или так Ob:= win_oleCreateObject("Scripting.FileSystemObject") ? Ob:GetFileVersion(Путь к EXCEL+"excel.exe") Дорогу к EXCEL можно взять в теме

Haz: Andrey пишет: А как у себя из программы узнать версию EXCEL или вариант посложнее - WMI запрос к системе SELECT VERSION FROM Win32_Product WHERE Caption Like '%EXCEL%' PS. примеры WMI в минигуи ЕСТЬ

Dima: Haz пишет: или вариант посложнее - WMI запрос к системе Или так [pre2] OLocator:=CreateObject("wbemScripting.SwbemLocator") oWMI:= oLocator:ConnectServer() arr:=oWMI:ExecQuery("SELECT * FROM Win32_Product") for each oitem in arr if hb_at("Microsoft Office",oitem:Name)>0 if hb_at("2003",oitem:Name)>0 ? 2003 elseif hb_at("2007",oitem:Name)>0 ? 2007 elseif hb_at("2010",oitem:Name)>0 ? 2010 endif endif next [/pre2]



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