我有一个用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应用程序对象有一个只读属性,但它(当然)是只读的。
如何设置我的程序以将数据写入工作簿,即使有人意外地将文件打开在他们的办公桌上?
发布于 2010-06-22 04:19:30
只需执行以下操作:
Set remoteBook = xlApp.Workbooks.Open( sheetName, , true)其中true表示是否以只读方式打开。ReadOnly是此方法的第三个参数。
发布于 2010-06-22 04:20:47
我认为您可以通过here中描述的Workbook.ChangeFileAccess方法来完成此任务。不过,我不确定它是否适合您的环境。
发布于 2010-06-22 04:35:46
让我确保我正确地解释了您的问题:
现在,我想你是在说:一旦用户查看了工作表,他们可能想要也可能不想编辑该工作表。
换句话说,你不想使用
Set remoteBook = xlApp.Workbooks.Open( sheetName, , true)100%的时间,因为查看的用户可能想要改变数据。
缺点是,这个卑劣的用户可能会让文件保持打开状态,以防止其他用户写入该文件。
对吗?
如果是这样,听起来您可能需要在您的应用程序中显式地将状态设置为"Open for viewing“或"open for read- Only”访问,然后适当地切换Read Only属性;这可能是不可取的。
但是,一旦其他人打开了office文档,您就不能强制保存它。
https://stackoverflow.com/questions/3088186
复制相似问题