如何在 VBA 中基于公共子宏调节私有子宏

问题描述 投票:0回答:1

我只想在 VBA 中执行公共子宏后运行私有子宏。我想将数据输入电子表格,运行公共宏,在公共宏运行之后,我想锁定宏中使用的单元格。目前,我有一个私有 sub 在数据输入后锁定单元格,我希望它在使用输入的数据执行公共宏后锁定单元格。工作表和工作簿均受密码保护,之前的条目已锁定


`Some pseudocode for reference:
Private Sub
ActiveSheet.Unprotect Password:="123"
If Call Public Sub Macro Then
Target.Locked= True
End if
ActiveSheet.Protect Passwor:="123"
End Sub`


`Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect Password:="123"
Target.Locked = True
ActiveSheet.Protect Password:="123"
End Sub`
excel vba
1个回答
0
投票

尝试从

Worksheet_Change
调用两个潜艇,并在适当的地方锁定单元格(在公共潜艇之后?)。下面伪代码的一些变体应该确保以您想要的顺序调用 subs。

Sub Worksheet_Change(ByVal Target As Range)

    Call PublicSub

    ' Lock changed cells here?
    
    Call PrivateSub
    
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.