在vb.net应用程序中指定打开Excel woorbook的路径时出现问题

在vb.net应用程序中指定打开Excel woorbook的路径时出现问题,vb.net,excel,search,path,vba,Vb.net,Excel,Search,Path,Vba,我有一个WFP应用程序,运行良好。我打开一个Access数据库,并希望对Excel工作簿执行同样的操作。打开DB不是问题,因为我可以从路径中删除驱动器号。我对工作簿的搜索路径有点问题。当指定驱动器号时,我的路径按预期运行[这是正常工作的代码行--xlWorkBook\u AR=xlApp\u AR.Workbooks.Open(“S:\11\u 2017\u Spring\MPRecords-2\Accounting\FinancialSystem.xlsm”))。当我从路径中删除驱动器规格时,

我有一个WFP应用程序,运行良好。我打开一个Access数据库,并希望对Excel工作簿执行同样的操作。打开DB不是问题,因为我可以从路径中删除驱动器号。我对工作簿的搜索路径有点问题。当指定驱动器号时,我的路径按预期运行[这是正常工作的代码行--xlWorkBook\u AR=xlApp\u AR.Workbooks.Open(“S:\11\u 2017\u Spring\MPRecords-2\Accounting\FinancialSystem.xlsm”))。当我从路径中删除驱动器规格时,它不会按预期运行。我收到一个错误,说明找不到文件。我需要做些什么才能使它充满活力? 提前谢谢。 Ed

试试这个(如果它适合您的场景):

  • 将excel文件与您的应用程序(.exe)放在同一文件夹中(我认为这可以满足您的需要)
  • 使用此代码动态获取应用程序的路径,然后添加文件名,如下所示:

    Application.StartupPath&“\FinancialSystem.xlsm”

  • 将此提供给excel的.Open方法,我相信它会起作用


    您需要导入System.Windows.Forms。请在此处阅读Application.StartupPath属性:

    我认为您必须指定excel文件所在的位置。为什么不把文件放在服务器上?@codeMonger123--我更喜欢安装在服务器上。这是一个学校项目,需要在学校硬件上的不同位置运行(即课堂上的桌面或VMware)。不是固定的路径。很糟糕,但我几乎没有得到学校的帮助(老实说,我认为这是课堂上教他们如何解决问题的一部分)。我发现的Access DB路径在没有驱动器号的情况下可以正常工作,但我无法找出Excel路径结构,可以说它是“可移植的”。谢谢Ed excel是如何填充的(即excel是如何提供给您的)?如何将excel文件链接为外部数据源?因此,如果您连接到Access数据库,Access将从电子表格中检索数据,您可以将其视为一个表。@codeMonger123--Excel文件由队友作为独立的多工作表工作簿提供。我调用工作簿并将控件传递给Excel。在Excel保持打开状态时,我保留编辑应用程序其他部分的能力。这能回答你的问题吗?我尝试过这个想法。我一定是遗漏了一些东西,因为msdn站点上的示例不起作用。错误状态为“'Application'不明确,从名称空间或类型'System.Windows.Forms,System.Net.Mime.MediaTypeNames.'导入”。在代码中-当您在应用程序对象上调用该方法时-由于它不明确-您需要完全定义其名称空间,因此不要说“Application.StartupPath&”\FinancialSystem.xlsm“改为试试这个:”System.Windows.Forms.Application.StartupPath&“\FinancialSystem.xlsm”也-我看到它是一个WPF应用程序。如果你用谷歌搜索如何在WPF中获取应用程序路径-有一些方法可以做到这一点,而不用使用System.Windows.Forms命名空间(这是针对WPF之前的Winforms-UI技术)。也许这对您有用:System.AppDomain.CurrentDomain.BaseDirectory返回应用程序exe的路径。@M.Ferry--谢谢您的建议。