通过VB6以只读方式打开Excel工作簿

我有一个用VB6编写的应用程序将数据写入电子表格。 我正在使用MS Excel 11.0对象库来创build一个Excel的实例并打开这本书:

Dim xlApp As Excel.Application, remoteBook As Workbook Set xlApp = New Excel.Application Set remoteBook = xlApp.Workbooks.Open(sheetName) 

除了写入工作簿“sheetName”之外,程序还允许用户启动工作簿以查看累积结果。

有一个机会,不pipe是微薄的,用户可以打开工作簿查看结果,而其他人正在尝试写入。 我想给用户写信给表单优先。 有没有办法我可以启动表单以只读方式查看? 有一个只读属性的Excel应用程序对象,但(当然)是只读的。

即使有人不小心将文件留在办公桌上,我如何设置程序将数据写入工作簿?

只需做到这一点:

 Set remoteBook = xlApp.Workbooks.Open( sheetName, , true) 

真正的是否是以只读方式打开。 ReadOnly是此方法的第三个参数。

我想你可以通过这里描述的Workbook.ChangeFileAccess方法来完成 。 不知道它是否会适合你的情况。

让我确定我已经正确地解释你的问题:

  1. 您的应用程序写入一个Excel文件
  2. 该应用程序启动Excel中的文件给用户

现在,我认为你说的是:一旦用户正在查看工作表,他们可能会或可能不想编辑该工作表。
换句话说,你不想使用

 Set remoteBook = xlApp.Workbooks.Open( sheetName, , true) 

100%的时间,因为用户查看可能要更改数据。

缺点是,这个卑鄙的用户可能会打开该文件,以防止其他用户写入该文件。

那是对的吗?

如果是这样,这听起来像你可能需要在你的应用程序的显式状态“打开查看”或“打开只读”访问,然后切换适当的只读属性; 这可能是不可取的。

但是,一旦其他人打开办公室文档,就不能强制保存。