起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 413|回复: 4

excel撤销工作簿的保护,如何设置?

[复制链接]
发表于 2010-7-20 01:15:50 | 显示全部楼层 |阅读模式
设置方法如下:
workbook.PropertyPut('Unprotect',['密码']);  

运行调试时,报参数设置无效。
回复

使用道具 举报

发表于 2010-7-20 15:21:59 | 显示全部楼层
贴出你完整代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-12 19:58:01 | 显示全部楼层
if oExcel=nil then
       oExcel:= ComObj.CreateOleObject('Excel.Application');
    if app=nil then
       app := DispatchHelper.Create(oExcel);
    app.PropertyPut('Visible', [False]);
    app.PropertyPut('DisplayAlerts', [False]);
    if oworkbooks=nil then
       oWorkbooks := app.PropertyGet('Workbooks',[]);
    try
      workbooks := DispatchHelper.Create(oWorkbooks);
      obj1 := workbooks.InvokeMethod('Open',[sName]);
      sourceworkbook := DispatchHelper.Create(obj1);
      obj2 := sourceworkbook.PropertyGet('ActiveSheet',[]);
      sourceworksheet := System.DispatchHelper.Create(obj2);
      sourceworksheet.InvokeMethod('Unprotect', ['123456']);
回复 支持 反对

使用道具 举报

发表于 2010-9-13 11:54:12 | 显示全部楼层
app.PropertyPut('Visible', [False]);
    app.PropertyPut('DisplayAlerts', [False]);
楼主是指这两句出错么?我把您的代码复制测试了下,用下面的语句没有问题呀。
DispatchHelper(app).PropertyPut('Visible', [False]);
DispatchHelper(app).PropertyPut('DisplayAlerts', [False]);

请您把变量声明等相关部分都贴出来看看吧。
回复 支持 反对

使用道具 举报

发表于 2010-9-14 15:46:52 | 显示全部楼层
楼主,按照您贴的代码。为了测试方便,我在把'Visible'和'DisplayAlerts'属性调整为true。
在执行完sourceworksheet.InvokeMethod('Unprotect', ['123456'])后可以通过excel文件看到保护已经被清除。可以修改文件内容,过程中没有报错。
请问楼主您使用的Excel版本是什么,我这边测试用的Excel为 Excel2003。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-6 23:32 , Processed in 0.040930 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表