使用Excel VBA运行WinForms应用程序

时间:2018-02-22 17:36:36

标签: vb.net vba winforms

我使用vs 2017在vb.NET中编写了一个WinForms应用程序。该应用程序打开一个包含文档寄存器的excel工作簿,并根据需要更新文件。

我对应用程序非常满意,但是我想要的一个可能的改进是将应用程序附加到应用程序更新的Excel工作表中的宏,因为应用程序的用户倾向于打开此工作表习惯本来就是。

我有以下代码,它从文档寄存器中打开应用程序:

Sub AppMacro_Click()
Dim AppOpen
AppOpen = Shell("C:\Document Updater.exe", 1)
End Sub

然后用户可以运行该应用程序。

此方法的问题是应用程序检查没有用户打开工作簿,以便它可以打开原始副本(工作簿位于网络驱动器上),因此如果用户运行宏,他们将拥有在单击应用程序上的运行按钮之前关闭工作簿。我希望如果不是这样的话。

我想要实现的目标如下:

1)如果用户使用宏运行应用程序,则应用程序会调整并更新打开的工作簿(只要它不是只读的)

2)如果用户像往常一样运行应用程序,它仍会检测到没有其他用户打开工作簿

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

通常,在多个用户访问/修改的共享文件夹上存储工作簿通常会遇到麻烦,如果用户池相当小或使用完整的SQL(mySQL,SQL),最好使用Access数据库服务器)。此外,由于您在.NET中有一个工作应用程序,用户非常依赖Excel,我建议您转换到Excel加载项。它非常简单,您的解决方案将与Excel更加集成