我正在开发一个程序,使用Excel VBA作为我的VB程序的一部分。我创建了一个程序,它将打开包含宏的工作簿并运行它。但由于某种原因,vb将工作簿作为只读文件打开。我不希望工作簿作为只读文件打开。下面是我用来打开工作簿的代码:
Imports System.Reflection
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Windows.Forms.DataVisualization.Charting
Public Class chart_Display
Dim oExcel As Excel.Application
Dim oBook As Excel.Workbook
Dim oBooks As Excel.Workbooks
Dim oSheet As Excel.Worksheet
Sub runMacro()
'Start Excel and open the workbook containing macro
oExcel = CreateObject("Excel.Application")
oExcel.Visible = False
oBooks = oExcel.Workbooks
oBook = oBooks.Open("C:\Users\Joesph\Documents\Cynthia's Folder\Experiment\Testing Files\Test3.xlsm")
'Run the macro
oExcel.Run("Get18x17_14mil")
oBook.Save()
End Sub
End Class
我有计时器,每x分钟运行一次宏,它会创建一个折线图。程序将继续循环,直到用户退出程序。 我之前使用过这段代码用于我的其他程序,它运行得很好。我不明白为什么。请帮助我,因为我仍然缺乏VB经验。谢谢。
答案 0 :(得分:0)
首先确保它不是线程问题,正如其他人在评论中提到的那样。最简单的方法是在oBooks.Open()之前创建该文件的副本并使用该副本。
另一个问题可能是路径: 您通常需要管理员权限才能访问Windows上C:\ Users中的文件。确保你拥有它们。尝试从其他位置打开文件,以确保这不是问题所在。