gpt4 book ai didi

excel - 有没有办法限制使用 VBA 删除工作表中的行?

转载 作者:行者123 更新时间:2023-12-04 21:49:58 24 4
gpt4 key购买 nike

我有一个 Excel 表,我想在其中防止任何行被删除。我有这段代码实际上做了我想做的事情,但是一旦我运行宏,我就无法从任何 Excel 工作簿中删除任何行。

Sub DeleteRowsRestrictions()
Dim xBarControl As CommandBarControl
For Each xBarControl In Application.CommandBars.FindControls(ID:=293)
xBarControl.Enabled = False
Next
For Each xBarControl In Application.CommandBars.FindControls(ID:=294)
xBarControl.Enabled = False
Next
End Sub

有没有办法防止只从一个excel表中删除行?而不是像我的代码那样禁用删除所有 excel 工作簿中的行的宏?

谢谢 :)

最佳答案

不要重新发明轮子,这已经是 Excel 对象模型的一个特性。您可以通过保护它直接在工作表中执行此操作(不过我不会打扰密码,它很容易被殴打/哈希冲突):

Protect Sheet dialog

以编程方式,这是通过 Worksheet.Protect 完成的。方法 - 您可以通过提供 Boolean 来控制启用的内容每个权限的值 - AllowDeletingRows作为其中之一:

Sheet1.Protect Password:=vbNullString, _
DrawingObjects:=False, _
Contents:=False, _
Scenarios:=False, _
UserInterfaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=True, _
AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=True, _
AllowDeletingColumns:=False, _
AllowDeletingRows:=False, _
AllowSorting:=True, _
AllowFiltering:=True, _
AllowUsingPivotTables:=True

以我的经验,仅保护就足以对绝大多数用户起到威慑作用;密码只会最终丢失/忘记,而且在 VBA 代码中硬编码密码是相当幼稚的,安全方面:工作表保护不是安全功能。

关于excel - 有没有办法限制使用 VBA 删除工作表中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495653/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com