Вопрос
Почему не работает передача данных по OLE в русский Excel?
Ответ
Дело в том что в VCL твои команды OLE2 передаются Excel'у в русском контексте. Для исправления необходимо найти в файле OLEAUTO.pas в функции GetIDsOfNames строчку:
if Dispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount, LOCALE_SYSTEM_DEFAULT, DispIDs) <> 0 then
и заменить ее на
if Dispatch.GetIDsOfNames(GUID_NULL, @NameRefs, NameCount,((LANG_ENGLISH+SUBLANG_DEFAULT*1024)+SORT_DEFAULT* 65536 ), DispIDs) <> 0 then
После этого Excel должен понимать нормальные английские команды. Hеобходимая комбинация для установки английского языка взята из C-шных хедеров (h-файлов).
Из конференции Delphi
Copyright 2000-2004 Сообщество Чайников
Контактная информация