在微软的帮助里,有这么一段:Locked 属性
              
对于 Range 对象为 Variant 类型,对于其他对象为 Boolean 类型,如果对象被锁定则为 True,当工作表有保护时对象可被修改则为 False。如果指定区域既包含锁定单元格又包含不锁定单元格,则返回 Null。可读写。我想要的是锁定某几个单元格,而不是整的Sheet,如果单独的使用
cells.locked=true 没有什么效果,依旧可以被修改。
请求大家的帮助,如果有其他的方法当然也可以了。

解决方案 »

  1.   

    呵呵,不好意思,小弟刚才找到方法了。
    可以采用逆向思维的方式,其实人家帮助已经说了,只是我没有看明白,才疏学浅可以这样:
        Sheet6.Range("J7:J14").Locked = False
        Sheet6.Protect
    原理就是,首先锁定真个Sheet页,然后放开你所允许修改的地方,嘿嘿,就能达到目的了。
      

  2.   

    应该是这样吧
    Sheet6.Range("J7:J14").Locked = True 
    Sheet6.Protect password:="123456"
    这个问题昨天有人问过的呀
      

  3.   

    示例
    应用于 CellFormat 和 Range 对象的 Locked 属性。本示例解除对 Sheet1 中 A1:G37 区域单元格的锁定,以便当该工作表受保护时也可对这些单元格进行修改。Worksheets("Sheet1").Range("A1:G37").Locked = False
    Worksheets("Sheet1").Protect其实,OFFICE自带的VBA帮助里都有。