【问题标题】:Add excel workbook to VB .NET application将 Excel 工作簿添加到 VB .NET 应用程序
【发布时间】:2018-02-10 05:47:42
【问题描述】:

我有一个用 Vb .NET 编写的项目,在该项目中我从用户那里获取输入,打开一个 Excel 模板并在其中运行一个宏(vba),并使用来自主窗体的输入。 我可以使用模板路径毫无问题地完成所有这些工作,但我需要在发布它时将它作为项目的一部分。 这是我的路径版本代码(多余代码已删除):

Imports Excel = Microsoft.Office.Interop.Excel
private sub OpenExcel()
Dim objApp As Object
        Me.Hide()
        objApp = CreateObject("Excel.Application")
        objApp.WorkBooks.Open("ExampleWorkBook.xlsm")
        objApp.visible = True
        objApp.Run("MacroName", Var1, Var2)
        Me.Close()
End Sub

我找到了this post,但它不起作用,可能是因为我的模板位于一个文件夹中(与 form1.vb 等位于同一位置)。 我的模板必须与其他文件分开,以便于查找。 如果有人能以这种方式为我提供解决方案/修改其他帖子中的代码,我将非常感激

我正在使用 Visual Studio 2017 和 Excel 2010 链接帖子中的代码:

Dim filename as String = My.Application.Info.DirectoryPath & System.IO.Path.DirectorySeparatorChar & "WorkbookName.xlsx"
Process.Start(filename)

【问题讨论】:

    标签: excel vb.net vba visual-studio excel-2010


    【解决方案1】:

    我设法找到了解决方案,但后来又遇到了另一个问题:我会收到一条错误消息,提示路径无效,对象丢失。我确定这是路径的问题,但它与资源属性有关(类型:内容而不是无,并且始终复制,因此它位于应用程序的文件夹中)。

    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
    

    至于资源本身: 项目>添加现有项目>浏览>添加 然后在解决方案资源管理器中找到该项目,打开它的属性并更改: 类型:内容 复制到输出目录:总是复制

    问题已经解决,所以我关闭了这个帖子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-21
      • 2017-03-03
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多