将excel工作簿添加到VB.NET应用程序
我有一个用Vb.NET编写的项目,在这个项目中,我从用户那里获取输入,打开一个Excel模板,并在其中运行一个宏(vba),其中包含来自主窗体的输入。 我可以使用模板的路径毫无问题地完成所有这一切,但我需要在发布模板时将其作为项目的一部分。 这是我的路径版本代码(已删除多余代码): 我已经找到了,但它不起作用,可能是因为我的模板在一个文件夹中(与form1.vb等位于同一位置)。 我的模板必须与其他文件分开,以便于查找。 如果有人能为我提供一个解决方案/修改其他帖子中的代码,并以这种方式工作,我将非常感激 我正在使用Visual Studio 2017和Excel 2010 链接邮件的代码:将excel工作簿添加到VB.NET应用程序,excel,vb.net,vba,visual-studio,excel-2010,Excel,Vb.net,Vba,Visual Studio,Excel 2010,我有一个用Vb.NET编写的项目,在这个项目中,我从用户那里获取输入,打开一个Excel模板,并在其中运行一个宏(vba),其中包含来自主窗体的输入。 我可以使用模板的路径毫无问题地完成所有这一切,但我需要在发布模板时将其作为项目的一部分。 这是我的路径版本代码(已删除多余代码): 我已经找到了,但它不起作用,可能是因为我的模板在一个文件夹中(与form1.vb等位于同一位置)。 我的模板必须与其他文件分开,以便于查找。 如果有人能为我提供一个解决方案/修改其他帖子中的代码,并以这种方式工作,我
Dim filename as String = My.Application.Info.DirectoryPath & System.IO.Path.DirectorySeparatorChar & "WorkbookName.xlsx"
Process.Start(filename)
我已经设法找到了一个解决方案,但是我遇到了另一个问题:我会得到一个错误,说路径无效,对象丢失。我确信这是路径问题,但它与资源属性有关(键入:content而不是none,并始终复制,因此它位于应用程序的文件夹中) 打开excel模板的代码:
Imports Excel = Microsoft.Office.Interop.Excel
private sub OpenExcel()
Dim objApp As Object
Me.Hide()
'This path is independent of where the program is installed as it refers to program itself
Dim ResourcePath As String = My.Application.Info.DirectoryPath &
System.IO.Path.DirectorySeparatorChar & "Templates\Rate_Reach_ATT finished.xlsm"
objApp = CreateObject("Excel.Application")
objApp.WorkBooks.Open(ResourcePath)
objApp.visible = True
objApp.Run("MacroName", Var1, Var2)
Me.Close()
End Sub
至于资源本身:
项目>添加现有项>浏览>添加
然后在解决方案资源管理器中找到该项,打开其属性并更改:
类型:内容
复制到输出目录:始终复制
该问题已修复,因此我关闭此线程我已设法找到解决方案,但随后我遇到另一个问题:我将收到一个错误,说明路径无效,对象丢失。我确信这是路径问题,但它与资源属性有关(键入:content而不是none,并始终复制,因此它位于应用程序的文件夹中) 打开excel模板的代码:
Imports Excel = Microsoft.Office.Interop.Excel
private sub OpenExcel()
Dim objApp As Object
Me.Hide()
'This path is independent of where the program is installed as it refers to program itself
Dim ResourcePath As String = My.Application.Info.DirectoryPath &
System.IO.Path.DirectorySeparatorChar & "Templates\Rate_Reach_ATT finished.xlsm"
objApp = CreateObject("Excel.Application")
objApp.WorkBooks.Open(ResourcePath)
objApp.visible = True
objApp.Run("MacroName", Var1, Var2)
Me.Close()
End Sub
至于资源本身:
项目>添加现有项>浏览>添加
然后在解决方案资源管理器中找到该项,打开其属性并更改:
类型:内容
复制到输出目录:始终复制
问题已经解决,因此我关闭此线程