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

时间:2010-06-21 20:14:47

标签: excel vb6

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

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

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

有可能,无论多么微小,用户可以打开工作簿以查看结果,而其他人正在尝试写入结果。我想让用户写入工作表优先级。有没有办法可以启动工作表以便以只读方式查看? excel应用程序对象有一个只读属性,但它(当然)是只读的。

如果有人不小心将文件打开到桌面,我如何设置程序将数据写入工作簿?

3 个答案:

答案 0 :(得分:5)

只需这样做:

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

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

答案 1 :(得分:0)

我认为您可以通过here描述的Workbook.ChangeFileAccess方法完成此操作。不确定它是否适合你的情况。

答案 2 :(得分:0)

让我确保我已正确解释您的问题:

  1. 您的应用编写了一个Excel文件
  2. 应用程序在Excel中启动文件 给用户
  3. 现在这就是我所说的你说的话: 用户查看工作表后,他们可能会也可能不想编辑该工作表 换句话说,您不想使用

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

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

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

    这是对的吗?

    如果是这样,听起来您可能需要在应用中明确声明“打开以供查看”或“打开以进行只读”访问,然后适当地切换“只读”属性;这可能是不受欢迎的。

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