让Excel执行c#代码

本文关键字:代码 执行 Excel | 更新日期: 2023-09-27 17:52:12

是否可以要求Excel启动c#方法?
如何在Excel中实现这样的调用?

(即。我不想用VB编程,我想用c#编程

我可以想象使用vb宏在后台启动一个c#应用程序,但也许你知道一个更好的方法?

例如,c#代码将在点击特定Excel单元格时执行。

让Excel执行c#代码

你可以通过VBA打开一个程序。这个VBA脚本通过点击excel单元格来调用:

var Path = "MYPROGRAMPATH"
var Argument = "MYARGUMENT"
x = Shell("""" & Path & """ """ & Argument & """", vbNormalFocus) 

要对单元格更改作出反应,请使用以下事件:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'YOUR CODE
End Sub

然后编写你的c#应用程序,让它决定参数。
你的程序应该根据过滤后的参数做出反应。

这可以通过Environment.GetCommandLineArgs-Method来实现。

public static void Main() 
{
   Console.WriteLine();
   //  Invoke this sample with an arbitrary set of command line arguments.
   String[] arguments = Environment.GetCommandLineArgs();
   Console.WriteLine("GetCommandLineArgs: {0}", String.Join(", ", arguments));
   //Handling of arguments here, switch-case, if-else, ... 
}

我找到了VBA宏的解决方案:

Sub Button1_Click()
    Dim pathStr As String
    Dim argumentStr As String
    pathStr = "C:/Users/.../Desktop/temp/Trial02.exe"
    argumentStr = "Any argument string"
    Call Shell("""" & pathStr & """ """ & argumentStr & """", vbNormalFocus)
End Sub