DLL и TLB ссылаются на проблему в Excel VBA - PullRequest
0 голосов
/ 06 марта 2012

Я создал файл ' Sample.Dll ' и ' sample.tlb ', содержащий функцию, которая возвращает значение, используя библиотеку классов Visual Studio 2005 для доступа к ней в Microsoft.Макрос Office Excel для получения значения ячеек.

I Установите некоторые свойства в Visual Studio 2005 перед сборкой Solution. Изменения:

  • Приложение -> Информация о сборке-> Сделать сборку COM видимой Флажок установлен.
  • Компилировать -> Зарегистрировать для COM-взаимодействия Флажок установлен (При этом создается файл 'Sample.tlb')
  • Подписание -> ПодписатьAssembly.Check Box Checked (который создает файл 'Sample.snk')

Я создаю решение и в папке Release есть три файла

  • Sample.Dll
  • Sample.tlb
  • Sample.snk
  • sample.Pdb
  • sample.xml

Теперь я помещаю ' sample.dll ' и ' sample.tlb ' в System32, затем регистрирую семплle.dll на другой машине два раза

  1. от gacutil / i sample.dll
  2. от RegAsm sample.dll

Теперь я открываю Excel, затем создаю макрос и добавляю ссылку на файл sample.tlb из системы 32 и библиотеки объектов данных Microsoft ActiveX 2.1 и библиотеки Microsoft DAO 3.6.Теперь я создаю объект из файла класса DLL.

Cells(1,1)=object.Function()

Возвращает значение на той же машине, где выполняется sample.Dll, но на другой машине выдает ошибку, когда выполняет функцию и не выполняетвернуть значение этих ячеек.функция выдала код ошибки.

1. Код ошибки 429 2. Код ошибки -2147024894

Я исследовал эти две ошибки, но не получил какого-либо сильного результата.почему это происходит на любой другой машине, где я не скомпилировал sample.dll?Как создать универсальный Dll, который отлично работает в каждой конфигурации машины?или какой шаг я не выполнил?

1 Ответ

0 голосов
/ 06 марта 2012

Скорее всего, вы столкнулись с проблемой, потому что другие машины не имеют офиса на них.Для работы библиотек Office Interop необходимо иметь офис.Взгляните на:

http://debugmode.net/2011/08/28/creating-and-updating-excel-file-in-windows-azure-web-role-using-open-xml-sdk/

...