C# 如何使用ExcelDna中的ExcelCommand

C# 如何使用ExcelDna中的ExcelCommand,c#,excel,vba,excel-addins,excel-dna,C#,Excel,Vba,Excel Addins,Excel Dna,我有一个简单的命令: [ExcelCommand(Name = "MyTestCommand", ShortCut = "^Q")] public static void Teste() { var xlApp = (Application)ExcelDnaUtil.Application; var ws = xlApp.Sheets[1] as Worksheet; var range = ws.Cells[1, 1] as Range; range.Value

我有一个简单的命令:

[ExcelCommand(Name = "MyTestCommand", ShortCut = "^Q")]
public static void Teste()
{
    var xlApp = (Application)ExcelDnaUtil.Application;
    var ws = xlApp.Sheets[1] as Worksheet;
    var range = ws.Cells[1, 1] as Range;
    range.Value2 = "foo bar";
}
当我按Ctrl+Shift+Q时,第一张工作表中的单元格A1接收文本
“foo bar”

客户机不需要快捷方式,他需要一个用户界面按钮(在Ribbon中或在sheet body中,无所谓)

使用VBA,我可以编写:

Sub Button1_OnClick()
    MyTestCommand
End Sub
但是调用
MyTestCommand
不起作用


如何调用我创建的命令?

如果为
ExcelCommand
MenuText
成员设置一个值,它将通过
加载项
功能区自动变为可用


如果您想更多地控制命令的外观,那么可以使用自己的按钮、图标等创建自己的
CustomUI

使用VBA古怪的SendKeys功能,您可以使用一个非常可怕的frig。这样就可以在不使用功能区的情况下工作,并且可以在工作表上使用标准按钮

好的,往后站,遮住眼睛:)

忍受,我是说享受

试试这个:

Sub Button1_OnClick()
    Application.Run("MyTestCommand")
End Sub
不错(+1)。但半测量(不能标记为正确)。
Sub Button1_Click()
    ' this short cut invokes the
    ' MyTestCommand function
    SendKeys "^Q"
End Sub
Sub Button1_OnClick()
    Application.Run("MyTestCommand")
End Sub