gpt4 book ai didi

excel - 防止用户在表中插入行,除非使用 VBA

转载 作者:行者123 更新时间:2023-12-04 20:31:07 25 4
gpt4 key购买 nike

我创建了一个用于输入数据的表。但是,当用户使用它时,他们会在表的中间插入行。这使公式变得困惑,因为函数的设计只能向前推进。有时当用户手动添加行时(只需在表的最后一行之后输入下一行),该函数会自动填充,但该函数经常不正确。

所以我添加了一个按钮来将行添加到表中,并且没有问题。现在我想禁用用户手动添加行的功能,这意味着只能通过单击按钮添加行。

据我研究,人们都建议使用保护表功能。但它会删除所有添加行的能力,包括通过 VBA。其他提供仅阻止通过右键单击行列插入行的 VBA。我需要禁用所有用户可访问的方式。

这是按钮的代码(如果有任何相关)。

Sub InsertRow_Click()

Dim i As Integer

For i = 1 To 10
ActiveSheet.ListObjects("Invoice").ListRows.Add alwaysinsert:=True
Next i

End Sub

最佳答案

使用工作表保护时,您可以添加 Userinterfaceonly=true,这将防止用户干扰,但 VBA 代码仍然可以工作。

Private Sub Workbook_Open()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Protect Password:="secret", UserInterFaceOnly:=True
Next ws
End Sub

或者如果您只想保护一张纸:
Private Sub Workbook_Open()
Worksheets("YourSheetName").Protect Password:="secret", UserInterFaceOnly:=True End Sub

或者只是在运行宏之前关闭保护,然后再戴上它:
Sub InsertRow_Click()
ActiveSheet.Unprotect Password:="secret"
Dim i As Integer

For i = 1 To 10
ActiveSheet.ListObjects("Invoice").ListRows.Add alwaysinsert:=True
Next i
ActiveSheet.protect Password:="secret"
End Sub

Userinterfaceonly 和表看起来是否不匹配

关于excel - 防止用户在表中插入行,除非使用 VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50482822/

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