【问题标题】:Protect excel sheet with some exceptions保护 excel 工作表,但有一些例外
【发布时间】:2014-05-04 07:38:48
【问题描述】:

我有一张 Excel 表格,我在其中使用了宏、下拉菜单和按钮。我在不同的单元格中也有很多公式,例如乘法、vlookup 等。这些按钮的工作方式是,当我按下它时,它会添加一个空行并向其中添加一些数据。用户应该在其中输入数据的单元格很少

按钮、公式和下拉菜单发生变化并将新数据添加到不同的单元格

现在我想保护工作表,这样用户就不会误会或故意更改内容。

但是当我保护工作表时,它会在使用工作表时显示错误,因为按钮、乘法和 vlookup 往往会一直更改不同单元格中的数据。

是否可以让工作表为用户只读(除了一些应该输入数据的单元格)并允许宏、公式和下拉菜单来更改单元格内容

【问题讨论】:

  • 如果您可以在工作簿打开时通过代码保护您的工作表,您可以使用“仅用户界面”选项来允许您的 VBA 仍然进行更新。 stackoverflow.com/questions/125449/…
  • 我需要更多信息。下拉列表是数据验证列表还是表单/Active-X 控件?您是否为每个添加的行添加按钮或者它们是静态的?你能展示宏、按钮和下拉菜单背后的代码吗?您使用的是哪个版本的 Excel?添加行时是否需要 VBA 将公式从上面的行中复制下来,还是使用 Excel 表格自动为您完成?
  • @Tim Williams 谢谢你的链接,它给了我我需要的东西,'Worksheets("conf").Protect Password:="", UserInterfaceOnly:=True' 也可以改变单元格通过我在 excel 的审阅选项卡下使用“允许用户编辑范围”的公式进行数据验证
  • @Mark Fitzgerald 感谢您的关注,但问题现已解决

标签: vba excel


【解决方案1】:

在 workbook_open() 中放置一个宏以首先解锁您的工作表,然后在其他宏的末尾放置锁定宏 ex:

Private Sub Workbook_Open()
  On Error Resume Next
       Sheets("Sheet1").Unprotect Password:=""

  *****your codes here

       Sheets("Sheet1").Protect Password:=""
end sub

这将确保您的工作表在您的代码运行时未锁定,但在您的代码完成后将锁定。

【讨论】:

  • 感谢您的帮助,我使用了您的代码并且效果很好,但现在我正在使用这个 'Worksheets("conf").Protect Password:="", UserInterfaceOnly:=True' 这样我不需要为每个宏添加取消保护或保护密码
猜你喜欢
  • 1970-01-01
  • 2013-12-19
  • 2019-03-08
  • 2020-04-12
  • 2019-05-27
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多