【问题标题】:Open Excel workbook as read-only via VB6通过 VB6 以只读方式打开 Excel 工作簿
【发布时间】:2010-06-21 20:14:47
【问题描述】:

我有一个用 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 应用程序对象有一个只读属性,但它(当然)是只读的。

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

【问题讨论】:

    标签: excel vb6


    【解决方案1】:

    只需这样做:

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

    其中 true 是是否以只读方式打开。 ReadOnly 是该方法的第三个参数。

    【讨论】:

    • 这个答案比我的好(虽然感觉你被骗了,但你的太容易了:))
    • 啊。我有一种感觉,这可能很容易。谢谢。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      1. 您的应用编写了一个 excel 文件
      2. 应用程序在 Excel 中启动文件 给用户

      这就是我认为你所说的: 用户查看工作表后,他们可能希望也可能不想编辑该工作表。
      换句话说,你不想使用

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

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

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

      对吗?

      如果是这样,听起来您可能需要在应用程序中明确声明“打开以供查看”或“以只读方式打开”访问权限,然后适当地切换只读属性;这可能是不可取的。

      但是,一旦其他人打开了 Office 文档,您就不能强制保存它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-31
        • 2013-12-10
        • 1970-01-01
        • 2014-09-12
        • 1970-01-01
        相关资源
        最近更新 更多