取消保护然后保护表

时间:2014-10-13 13:04:01

标签: excel vba excel-vba

第1部分 我已经将以下代码放在一起,以便对工作表上的数据进行排序。

但是,用户不断删除工作表中的行,这会破坏我工作簿的其余部分,因此我保护了工作表,但宏将不再运行。

有人可以帮我修改工作表的代码,运行宏并最后重新保护工作表吗?

Sub CustSort1()

    Range("a14").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Sort Key1:=Range("a14"), Order1:=xlAscending, Key2:=Range( _
        "k14"), Order2:=xlAscending, _
        Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
        xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
        DataOption3:=xlSortNormal
    Range("a14").Select

End Sub

我发现了类似的帖子,但我的知识水平很低。

非常感谢。

第2部分 好的,这么小的问题出现了!如果我仍然希望用户能够插入单元格怎么办?

我可以看到我需要使用这个" AllowInsertingRows"但不明白我插入它的位置。

1 个答案:

答案 0 :(得分:1)

绝对同意@ vba4all。另一种编写方式是在调用CustSort1子例程之前取消保护工作表,然后再次保护工作表。

Sub pMainCode()

    'Considering Sheet1 to be where you want to apply sorting
    Worksheets("Sheet1").Unprotect "Password"
    Call CustSort1
    Worksheets("Sheet1").Protect "Password"

End Sub