取消保护,然后保护工作表

第1部分我已经把下面的代码放在一起,以便在表格上sorting数据。

但是,用户不断删除工作表中的行,从而破坏了工作簿的其余部分,所以我保护了工作表,但是macros不会再运行。

有人可以帮助我用代码来解除表单,运行macros,并保护最后的工作表?

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 

我发现了类似的post,但我的知识水平相当低。

所有帮助赞赏。

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

我可以看到我需要使用这个“AllowInsertingRows”,但不知道我插入它的位置。

绝对赞同@ 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