Я пытаюсь создать пользовательскую функцию для MS Excel в C#.Создание пользовательских функций MS Excel
Но независимо от того, что я пытаюсь, когда я пытаюсь добавить надстройку в Excel, я всегда получаю печально известный «Выбранный файл не содержит новый сервер автоматизации, или у вас нет достаточных привилегий для зарегистрируйте сервер автоматизации ".
Вот код, который я взял из и онлайн пример просто попробовать его:
// C#
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace AutomationAddin
{
[ClassInterface(ClassInterfaceType.AutoDual)]
public class MyUdf
{
public MyUdf()
{
}
public double addMeTest(double x, double y)
{
return x + y;
}
[ComRegisterFunctionAttribute]
public static void RegisterFunction(Type t)
{
Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(
"CLSID\\{" + t.GUID.ToString().ToUpper() +
"}\\Programmable");
}
[ComUnregisterFunctionAttribute]
public static void UnregisterFunction(Type t)
{
Microsoft.Win32.Registry.ClassesRoot.DeleteSubKey(
"CLSID\\{" + t.GUID.ToString().ToUpper() +
"}\\Programmable");
}
}
}
Я попытался это с MS Visual Studio 2012 на Excel 2013 x64 и Excel 2010 x86
РешенияИзобрались и не добились успеха:
- [ClassInterface (ClassInterfaceType.AutoDual)], как показано в коде
- [ComRegisterFunctionAttribute] И [ComUnregisterFunctionAttribute], как показано в коде
- Regasm/кодовое ничего не делали, а
- Включение/выключение " Регистрация COM Interop»(VS работает как администратор при строительстве)
- [сборка: ComVisible (истина)] на истинные
- Пробовал различные примеры кода из Интернета
- Прочитайте это на StackOverflow: How to get COM Server for Excel written in VB.NET installed and registered in Automation Servers list?
- Я также пробовал все вышеперечисленное вместе - не повезло здесь
- Ран Excel в режиме администратора
Так, пожалуйста, ребята, если вы можете сказать мне, что я здесь отсутствует, и, возможно, даже сказать мне, что я должен сделать, чтобы он работал, я был бы так благодарен! Заранее спасибо!
Я с радостью предоставит вам любую дополнительную информацию.
P.S. Не спали уже две ночи, так что я мог бы что-то испортить глупо. Если кто-то может проверить этот код, если он работает, и скажите мне, что его проект может помочь.
Длинный снимок здесь, вы пробовали работать в режиме администратора? – JuStDaN
Я забыл упомянуть, что сделал. Так что да, но безрезультатно. –
http://www.codeproject.com/Articles/7753/Create-an-Automation-Add-In-for-Excel-using-NET, похоже, решает вашу проблему, надеюсь, что это поможет! – JuStDaN