Не может инстанцировать COM-объекта, записанного в C# из VBA (VB6 хорошо)

Если я правильно понимаю ваш вопрос, то я сделаю что-то вроде этого:

const functionWhichIWantRun = e => console.log(e);

const variable = {
  info1: 'info1',
  info2: 'info2',
  show: false,
  someNameFunction: e => functionWhichIWantRun(e)
};

variable.someNameFunction('row 01');

11
задан bluish 22 October 2012 в 08:15
поделиться

4 ответа

RC1, я протестировал это с Вашим кодом от VBScript и из Excel 2007 Office, все хорошо работает.

Так как Ваши способные для создания COM-объекта из VB6 формируются, мы должны предположить, что платформа .NET в порядке. Можно ли исключить проблемы с VBA? Можете Вы создавать .vbs файл и помещать это в него:

Dim o As Object  
Set o = CreateObject("Test9.COMINT")  
o.Init "A", "B"

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

Другая опция состоит в том, чтобы добавить ссылку на раннее связывание использования и COM-объект? Я думаю, что Вы, возможно, должны были бы экспортировать typelibrary сначала, но необходимо смочь добавить ссылку и простой новый объект.

1
ответ дан 3 December 2019 в 07:39
поделиться

Я собираюсь ответить на свой собственный вопрос, надо надеяться, сэкономить других часы утомительной тяжелой работы, которую я только что вынес.

Если Вы получаете это, это - потому что.NET базирующийся блок COM не может найти платформу.NET

Решение просто. Создайте файл, содержащий следующее

<?xml version="1.0"?>
<configuration>
  <startup>
   <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

Назовите его "Excel. Exe. Конфигурация" и место это в том же каталоге как "EXCEL.EXE"

Проблема решена!

13
ответ дан 3 December 2019 в 07:39
поделиться

Это работает на меня от VBA... Я попробовал его использование Word & Excel 2003 (SP3).

Я не уверен, что Вы подразумеваете под "производственной" машиной. Поскольку это - "клиентское" приложение и должно быть выполнено на клиентском использовании Excel.

Если Вы автоматизируете Excel на сервере и инициировали этот "interop" через вызов VBA, Вы напрашиваетесь на неприятности :)

Предполагая производством, значение клиентской машины, где пользователь будет использовать шаблон Excel / документ, это следующие указатели:

  1. Удостоверьтесь, что у Вас есть соответствующая платформа .NET
  2. То, что у Вас есть последние пакеты обновления для Office
  3. Попытка устанавливает, является ли это выпуском новых акций.

Если Вы чувствуете adventuristic, Вы могли бы использовать проводник процесса [от Microsoft sysinternals сайт] для наблюдения то, что является загруженным DLLs и где точно Вы получающий ошибку и сравниваете его со списком на Вашем dev поле.

Надеюсь, это поможет.

0
ответ дан 3 December 2019 в 07:39
поделиться

установка следующего исправления решит эту проблему http://www.microsoft.com/downloads/details.aspx?FamilyID=1b0bfb35-c252-43cc-8a2a-6a64d6ac4670&displaylang=en

2
ответ дан 3 December 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: