Я пытаюсь создать MS Office VSTO AddIn, используя C#. Надстройка содержит ленту, которую я добавил через конструктор лент в VS19.
Я оставил файл ThisAddin.cs без изменений:
namespace MyAddIn
{
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
}
На ленте я добавил кнопку и написал несколько код, который будет выполняться при нажатии:
namespace MyAddIn
{
public partial class my_ribbon
{
private void my_ribbon_Load(object sender, RibbonUIEventArgs e)
{
}
private void btn_myButton_Click(object sender, RibbonControlEventArgs e)
{
MessageBox.Show(Globals.ThisAddIn.Application.ThisWorkbook.FullName);
}
}
}
Однако всякий раз, когда я нажимаю на кнопку, C# выдает мне следующее исключение:
System.Runtime.InteropServices.COMException
HResult=0x800A03EC
Message=Ausnahme von HRESULT: 0x800A03EC
Source=<Cannot evaluate the exception source>
StackTrace:
<Cannot evaluate the exception stack trace>
Во время отладки я видел, что Globals.ThisWorkbook.Application
скинул ошибку. Я обнаружил, что 0x800A03EC
- это код ошибки для Name-Not-Found (согласно this ). Но когда я нажимаю кнопку после открытия файла, должен появиться объект приложения с полным именем.
Я также взглянул на это руководство , но это не помогло много, потому что они также используют Globals.ThisWorkbook.Application
, но успешно.
Есть ли у вас какие-либо советы о том, как это исправить? (Требуется больше кода инициализации, и т. Д. c?)