How are excel function names in dlls/xlas resolved ?

G

Guest

Hi,

I am looking to know how custom function names are resolved in Excel.I have
an XLA with a number of functions in it and have used it to build a large
spreadsheet.
Once the functions were settled I built an add-in DLL in delphi to replace
the XLA
for easier deployment. The new DLL works fine when building new workbooks
but existing ones which were designed with the XLA dont work even though
the function names in the new dll are identical. I guessed that excel was
storing the
path to the xla in the sheet somewhere but even if i edit the cells or call
the
DLL's functions from new cells they fail with #NAME as if they are still
trying to
find the function name in the old XLA...

This has been very frustrating so any help would save a few grey hairs...

Thanks

Aidan
 
C

Chip Pearson

You can't call functions in the DLL directly from worksheet
cells, unless the DLL was written as an XLL or COM Add-In.
Instead, you need "dummy" XLA functions that get called from the
cell and then in turn call the function in
the DLL.


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com


in message
news:[email protected]...
 
G

Guest

Hi Chip,

Originally it was a DLL/XLA pair as you suggested however I am looking to
replace this with a COM add-in which exports the same function names. The
problem is workbooks built with the old XLA/DLL pair dont recognise the new
Add-In's functions even though they have the same names. A brand new workbook
will recognise the functions without any problem.

Even if I try one of my functions in a new blank cell, it wont resolve it,
it appears
to be still looking for the old XLA file. Is excel keeping a workbook wide
list of
functions used and their locations ? I'm trying to avoid having to redesign
all
our customers sheets when I ship the new DLL...

Aidan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top