我有一个用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)
答案 0 :(得分:0)
我设法找到了一个解决方案,但后来遇到了另一个问题:我会收到一条错误,说路径无效,对象丢失。我确信这是路径的一个问题,但它与资源属性有关(类型:内容而不是无,并且总是复制,因此它位于应用程序的文件夹中)。
打开Excel模板的代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
System.exit(0);
资源本身: 项目>添加现有项目>浏览>添加 然后在解决方案资源管理器中找到该项目,打开它的属性并更改: 类型:内容 复制到输出目录:始终复制
问题已修复,所以我关闭了这个帖子