请问用VSTO做Excel的开发,想把行和列锁定使其不允许删除还要保留toolbar上面的插入函数按钮,应该用什么方法?

时间:2022-11-07 20:22:38
用VSTO开发Excel的项目, 
客户要求要把行和列全部锁定,无法删除, 
这个功能用worksheet.protect(...)函数实现, 
但是这样锁定的话toolbar就被一起锁定了, 
toolbar中的函数插入按钮也变成灰色了, 
worksheet.protect()函数中,第三个参数contents如果设置成false的话, 
虽然toolbar上面的插入函数按钮可用了,但是行和列就都能修改了, 
无法符合要求了,哪位大侠有好的办法,帮我一把。 

16 个解决方案

#1


如果行列不允许修改,ToolBar当然就锁定了,除非你点击到允许修改的行列,因此我判断worksheet.protect(...)函数就已经实现了你的需求

#2


up

#3


刚刚就说了你很矛盾!!

#4


顶一下、

#5


顶一下、

#6


 Globals.Sheet1.Protect("", true, true, true, true, true, true, false, false, false, true, true, true, false, false, false);
保护后删除插入操作时有提示!16个参数调一调好像能实现

#7


  Globals.Sheet1.Protect("", true, true, false ,false ,false , true, true ,true ,true ,false , true, true, false, false, false);
        这样子好像正确一点...

#8


帮不上忙,关注,顶

#9


Excel.AllowEditRange rng = this.Protection.AllowEditRanges.Add("可编缉", this.Range["A:A", missing], "");
            Globals.Sheet1.Protect("", true, true, false ,false ,false , false , false  ,false  ,false  ,false , false ,  false , false, false, false);

在A1单元格可以用下拉菜单里的插入函数,也可以自己重新写工具栏函数插入!

#10


不好意思,可能是我说的不够清楚。

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定,

可是我想要实现:   行列不允许修改,ToolBar锁定解除,有没有方法?

#11


引用 10 楼 ecaol 的回复:
不好意思,可能是我说的不够清楚。 

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定, 

可是我想要实现:  行列不允许修改,ToolBar锁定解除,有没有方法? 

行列不允许修改,对应的TollBar当然要被锁定,可以设置允许单元格,要不就矛盾了..

#12


真有想法呀。...

#13


引用 11 楼 hei_an 的回复:
引用 10 楼 ecaol 的回复:
不好意思,可能是我说的不够清楚。 

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定, 

可是我想要实现:  行列不允许修改,ToolBar锁定解除,有没有方法? 
 
行列不允许修改,对应的TollBar当然要被锁定,可以设置允许单元格,要不就矛盾了..


不矛盾,
但是客户就是希望行列不允许修改,对应的TollBar不要被锁定,
虽然边框表格基本都是锁定住的,但是其中有一块区域的锁定状态去掉了钩,是可以编辑的,
这个区域是要使用者输入信息的地方,

所以用户希望鼠标双击可输入的cell的时候,toolbar上面插入函数按钮时可用的,
难道就没有办法实现了吗?

#14


帮顶,顺便学习

#15


用SelectionChange事件,点选指定单元格解除保护,点选不允许的其它区域恢复保护呢?这个没时间试过,LZ不妨试一下

#16


学习中,帮顶!!
可不可以只针对指定的几行进行锁定?

#1


如果行列不允许修改,ToolBar当然就锁定了,除非你点击到允许修改的行列,因此我判断worksheet.protect(...)函数就已经实现了你的需求

#2


up

#3


刚刚就说了你很矛盾!!

#4


顶一下、

#5


顶一下、

#6


 Globals.Sheet1.Protect("", true, true, true, true, true, true, false, false, false, true, true, true, false, false, false);
保护后删除插入操作时有提示!16个参数调一调好像能实现

#7


  Globals.Sheet1.Protect("", true, true, false ,false ,false , true, true ,true ,true ,false , true, true, false, false, false);
        这样子好像正确一点...

#8


帮不上忙,关注,顶

#9


Excel.AllowEditRange rng = this.Protection.AllowEditRanges.Add("可编缉", this.Range["A:A", missing], "");
            Globals.Sheet1.Protect("", true, true, false ,false ,false , false , false  ,false  ,false  ,false , false ,  false , false, false, false);

在A1单元格可以用下拉菜单里的插入函数,也可以自己重新写工具栏函数插入!

#10


不好意思,可能是我说的不够清楚。

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定,

可是我想要实现:   行列不允许修改,ToolBar锁定解除,有没有方法?

#11


引用 10 楼 ecaol 的回复:
不好意思,可能是我说的不够清楚。 

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定, 

可是我想要实现:  行列不允许修改,ToolBar锁定解除,有没有方法? 

行列不允许修改,对应的TollBar当然要被锁定,可以设置允许单元格,要不就矛盾了..

#12


真有想法呀。...

#13


引用 11 楼 hei_an 的回复:
引用 10 楼 ecaol 的回复:
不好意思,可能是我说的不够清楚。 

protect方法我试过了,第三个参数是一个全局锁定既:行列不允许修改,ToolBar也被锁定, 

可是我想要实现:  行列不允许修改,ToolBar锁定解除,有没有方法? 
 
行列不允许修改,对应的TollBar当然要被锁定,可以设置允许单元格,要不就矛盾了..


不矛盾,
但是客户就是希望行列不允许修改,对应的TollBar不要被锁定,
虽然边框表格基本都是锁定住的,但是其中有一块区域的锁定状态去掉了钩,是可以编辑的,
这个区域是要使用者输入信息的地方,

所以用户希望鼠标双击可输入的cell的时候,toolbar上面插入函数按钮时可用的,
难道就没有办法实现了吗?

#14


帮顶,顺便学习

#15


用SelectionChange事件,点选指定单元格解除保护,点选不允许的其它区域恢复保护呢?这个没时间试过,LZ不妨试一下

#16


学习中,帮顶!!
可不可以只针对指定的几行进行锁定?