Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 788

/ вопрос открыт /

К вопросу № 2786 извините, техника подводит
1 вопрс
----------------------------------------------------------------------------
Итак, пытаюсь автоматизировать Exel.
Текст библиотеки (старая, древняя немного переделанная)
----------------------------------------------------------------------------
unit GeoFunc01; в - архиве

interface
Uses
Windows, SysUtils, Math;
...
...
{------------------Оболочка для EXCEl----------------------------------}
procedure XLSRadToDDD_mmss(var DegFmt : Variant;
Rad : Variant; Decimals : Variant); Stdcall;

implementation
...
...
{------------------Оболочка для EXCEl----------------------------------}
procedure XLSRadToDDD_mmss(var DegFmt : Variant;
Rad : Variant; Decimals : Variant);
begin
DegFmt := RadToDDD_mmss(Rad, Decimals);
end;
end.

Делаю DLL

library GeoFuncXLS;

uses
SysUtils, Classes, GeoFunc01;

{$R *.res}
exports
XLSRadToDDD_mmss;
begin
end.

Пристегиваю к Excel
----------------------------------------------------------------------------

Option Explicit
Option Base 1
Declare Sub XLSRadToDDD_mmss Lib "E:\Velas\GEO_Func_EXCEL\Func_Dll\GeoFuncXLS.dll" (ByVal DegFmt As Variant, Rad As Variant, Decemal As Variant)

Function vbRadToDDD_mmss(Rad As Variant, Dec As Variant) As Variant
Dim Result As Variant
On Error Resume Next
Call XLSRadToDDD_mmss(Result, Rad, Dec) rem - виснем и перезапуск EXEL
vbRadToDDD_mmss = Result
End Function

-------------------------------------------------------------------------------
B function vbRadToDDD_mmss VBA, вызов процедуры из DLL
Call XLSRadToDDD_mmss(Result, Rad, Dec) вызывает неустранимую ошибку EXCEL, что
ведет к его перезагрузке. И Где Жук сидит???. Если знаете подскажите, где собака зарыта.
-------------------------------------------------------------------------------
2 вопрс
-------------------------------------------------------------------------------
Функкции VBE не разрешают манипулировать ячейками. Макросы не подходят, необходима именно
function - нужен автоматический пересчет значения ячейки или диапазона
Задача - я вызываю пользовательскую функцию VBE, описанную как:

Function MyFn(aData as Range, aResult As Range) as Variant
rem aData - диапазон исходных данных
rem aResult - диапазон ячеек куда необходимо поместить результат вычислений
Call DelphiDLL_procedure_or_fnction(aData as Range, aResult As Range)
'- можно ли здесь манипулировать ячейками
'- небходимо только присваевать значения

end function
-------------------------------------------------------------------------------
Заранее большое спасибо.
с уважением Александр.

К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса)

Приложение:
  1. Windows XP, Delphi 6, Excel 2003


Крокодил Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Крокодил (статус: Посетитель)
Вопрос отправлен: 15 мая 2009, 15:14
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:59
Выполнено за 0.03 сек.