如何使用ExcelDna中的ExcelCommand

时间:2018-01-15 21:02:20

标签: c# excel vba excel-addins excel-dna

我有一个简单的ExcelCommand:

my_func

当我按 Ctrl + Shift + Q 时,第一张工作表中的单元格A1会收到文本[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"; }

客户不想要快捷方式,他想要一个用户界面按钮(在功能区或表格中,并不重要)。

使用VBA我可以写:

"foo bar"

但是致电Sub Button1_OnClick() MyTestCommand End Sub 并不起作用。

如何调用我创建的命令?

3 个答案:

答案 0 :(得分:2)

如果您为MenuText ExcelCommand成员设置了值,则会自动通过Add-Ins功能区提供该值。

enter image description here

[ExcelCommand(MenuText = "My Test Command", ShortCut = "^Q")]
public static void Teste()
{
    // ...
}

如果您想要更好地控制命令呈现方式的外观,请使用您自己的按钮,图标等创建自己的CustomUI {。{3}}。

答案 1 :(得分:0)

通过使用VBA的古怪的SendKeys函数,可以使用一种非常恐怖的方法。这样可以使工作正常,而不必使用功能区,并使您可以在工作表上使用标准按钮。

好吧,站起来遮住你的眼睛:)

Sub Button1_Click()
    ' this short cut invokes the
    ' MyTestCommand function
    SendKeys "^Q"
End Sub

忍耐,我是说享受

答案 2 :(得分:0)

试试这个:

Sub Button1_OnClick()
    Application.Run("MyTestCommand")
End Sub