2013-05-09 60 views
0

我很新VBA,对不起,如果这是简单的问题或已经回答...我尝试通过搜索MSDN但没有得到任何东西来实现这一点。将C#中的值传递给VBA代码?

在将Excel下载到用户之前,我需要向VBA代码发送一个字符串(URL中的主机名,例如xyzserver:4500/Home/GetExcelData)。

我从Excel VBA代码调用MVC操作方法,获取一些数据并在Excel中显示。

我的问题是主机名(xyzserver:4500)在不同服务器上有所不同,我需要根据用户正在访问的服务器URL动态更新URL。

基本上我需要发送服务器名称到VBA代码来更新模块中的URL。有没有办法将C#(MVC Action)的值发送和维护到VBA?

会话/应用程序缓存在VBA中有哪些类型的东西可用?

在此先感谢

回答

0

可以以这种方式通过从C#中的参数VBA:如果你想编辑 VBA代码编程

Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); 
Excel.Workbook wb = app.Workbooks.Open("your file here which contains the macro"); 
string url = "blah blah"; 
app.Run("name of macro here", url); 

,那么你就需要引用VBIDE。看看芯片皮尔逊的优秀网站:http://www.cpearson.com/Excel/vbe.aspx

+0

非常感谢伟大的资源。我会尝试在这里发布我的问题的更新:) – Santhosh 2013-05-10 06:32:56

+0

从C#代码运行excel宏是安全的吗?因为,同一个excel可以被多个用户同时下载。由于Excel是单线程应用程序,当多个用户运行相同的查询(我的意思是同时下载)时它的行为如何? – Santhosh 2013-05-13 06:11:12