vba - 在 Excel 中动态保护工作表不被意外删除
问题描述
我正在尝试在我的工作簿中的工作表上设置动态保护。我有许多不同的工作表,有时我会意外删除仍然需要的工作表。
如果 Cell OP15 包含一个值,这意味着我可以删除工作表以清理我的工作簿。如果 Cell OP15 包含一个值,我如何为只有让我删除它的工作表创建保护?
我在互联网上能找到的最接近的东西是这样的:
ActiveSheet.Unprotect
' your vba code here
ActiveSheet.Protect
解决方案
此代码已粘贴到我的管理模板的工作表代码中。单元格 A1 被硬编码为“管理模板”。复制模板后,单元格 A1 更改为新选项卡的名称。
Option Explicit
Private Sub Worksheet_Deactivate()
'This sub prevents acidental deletion of tab until it has been hardcoded
If Range("a1").Value = "admin template Ticket Info" Then
ThisWorkbook.Protect , False
Exit Sub
End If
If Range("OP15").Value <> "" Then
MsgBox "Cannot delete tab until the Onboarding details have been hardcoded."
Exit Sub
End If
ThisWorkbook.Protect , True
Application.OnTime Now, "Unprotectbook"
End Sub
这被复制到其中一个模块中
Sub UnprotectBook()
ThisWorkbook.Unprotect
End Sub
推荐阅读
- c - 消息队列 ic C
- hyperledger-fabric - Hyperledger Fabric - 多个并发交易
- dialogflow-es - 知识在“尝试”中起作用,但代理无法识别意图并检索 $Knowledge.Answer
- oracle - sqlplus 在从 shell 脚本执行时失败,但从终端执行时工作正常
- c# - ScrollIntoView 不会滚动到 DataGrid 中的 SelectedItem
- swift - 无法从连接到 XIB 的 UIView 执行 segue
- java - ClassLoader.getSystemClassLoader().getResourceAsStream 克隆项目后返回 null
- python - check_output 在 python 3.6 中不起作用,而 subprocess 工作正常
- javascript - 使用 localStorage 保存的复选框选择问题
- android - 在 Kotlin jackson ObjectMapper.readValue() 上导致 java.lang.IllegalStateException: readValue(content, jacksonTypeRef
()) 不能为空