2010-06-21 468 views
3

我有一个用VB6编写的将数据写入电子表格的应用程序。我使用的MS Excel 11.0对象库创建一个Excel的实例并打开书:以VB6只读方式打开Excel工作簿

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

除了撰写工作簿“SHEETNAME”,该方案还允许用户启动工作簿为了查看累计结果。

无论身材如何苗条,用户可以打开工作簿查看结果,而其他人正试图写入结果。我想让用户写入表单优先级。有没有办法让我可以启动表单以只读方式查看?有一个只读属性的Excel应用程序对象,但它(当然)是只读的。

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

回答

5

只要做到这一点:

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

如果真的是,是否为只读打开。 ReadOnly是此方法的第三个参数。

+1

这是比我更好的答案(虽然感觉就像你被骗了,你太容易了:)) – 2010-06-21 20:22:23

+1

啊。我有一种感觉,它可能是这样的容易。谢谢。 – Michael 2010-06-21 20:29:11

0

我认为你可以通过Workbook.ChangeFileAccess方法做here。不知道它是否会适合你的情况。

0

让我确认我已正确理解您的问题:

  1. 您的应用程序写入Excel文件
  2. 应用程序在Excel 文件启动到用户

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

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

100%的时间,因为用户观看3D电影可能要更改的数据。

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

这是正确的吗?

如果是这样,这听起来像您可能需要在您的应用程序中显式状态为“打开以供查看”或“打开以进行只读”访问,然后正确切换“只读”属性;这可能是不可取的。

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

+0

我发现我的解释不正确。 :P – ray 2010-06-21 20:37:33

相关问题