2016-11-24 54 views
1

我寫道,將在工作表中歸檔文件中刪除的行成anoteher隱藏的工作表代碼:VBA檢測/防護刪除行從快速訪問工具欄

Application.CommandBars("Row").FindControl(ID:=293).OnAction = "ArchiveRow" 

不幸的是刪除通過右鍵菜單行時,這僅適用。

有沒有辦法通過快速訪問工具欄或使用快捷鍵來檢測或防止刪除行?

+0

你需要的任何東西的工具欄或者你還好嗎完全隱藏起來呢? – Clusks

回答

1

可能的解決方法是在工作簿激活時禁用快捷方式和快速訪問工具欄,然後在停用時再次啓用它們。儘管如此,如果你需要其他的東西在工具欄,這未必是最好的選擇:

在的ThisWorkbook對象:

Private Sub Workbook_Activate() 

    Application.ScreenUpdating = False 
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 

    With Application 
     .OnKey "^-", "" 
    End With 

    Application.ScreenUpdating = True 

End Sub 

Private Sub Workbook_Deactivate() 

    Application.ScreenUpdating = False 
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" 

    With Application 
     .OnKey "^-", "^-" 
    End With 

    Application.ScreenUpdating = True 

End Sub 
1

我可以爲您提供以下解決方法:

  • 確保您鎖定的工作表,當你鎖定它,你不允許的行和列的缺失。

  • 當你想使用你的宏時,在某處設置一個觸發器,這樣就可以解除工作表的保護 - Sheets("Sheet1").Unprotect "mypassword"

  • 然後,在宏結束時,你可能會再次與這個保護工作表: Sheets("Sheet1").Protect "mypassword"

它的工作,但我不知道這是否是你想要的。