我有一个包含 3 张工作表的 Excel 文件,这些工作表都受密码保护,以防止在我需要的范围之外的单元格中插入数据。我编写了一个 VBA 脚本,让用户有一个按钮可以向表中添加一行并仅在(新)表范围内插入数据,还有一个按钮可以取消表中的一行。这样,我就可以确保任何用户都不会插入表外的任何数据。
现在我必须在 Microsoft 365 上在线运行此文件,但 Microsoft 365 不允许 VBA 在在线应用程序版本中运行。我尝试检查 Power Automate,但找不到与我需要的脚本类似的内容。
这在我的脚本中:
Sub NewLine()
'
' Nuova Linea in Tabella Attività
'
Dim oTabella As ListObject
Dim lastrow As Long
Const miaTabella As String = "Attivita"
Const miaPassword As String = "123456789"
With ActiveSheet
Set oTabella = .ListObjects(miaTabella)
.Unprotect Password:=miaPassword
oTabella.ListRows.Add
lastrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
ActiveSheet.Cells(lastrow, "A").Value = "=TODAY()"
ActiveSheet.Cells(lastrow, "A").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
.Protect Password:=miaPassword, DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
End With
End Sub
Sub DeleteRow()
'
' Cancella Linea in Tabella Attività
'
Const miaPassword As String = "123456789"
With ActiveSheet
.Unprotect Password:=miaPassword
Selection.EntireRow.Delete
.Protect Password:=miaPassword, Contents:=True, AllowSorting:=True, AllowFiltering:=True
End With
End Sub
注意:对于我来说,“明文密码”不是问题,因为我唯一想要的就是防止数据插入表外,所以从我的角度来看这不是一个安全问题。
如果不使用 VBA,如何阻止从表中插入数据?
预先感谢