VBA 与 PowerAutomate 保护工作表

VBA 与 PowerAutomate 保护工作表

我有一个包含 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,如何阻止从表中插入数据?

预先感谢

相关内容