如何使用其他工作簿中的sub

Mak*_*kai 4 error-handling excel vba

在PERSONAL.XLSB工作簿中,我有以下代码:

Public Sub Password(ByVal Target As Range)
    a = ""
    For n = 1 To Len(Target)
        a = a & "*"
    Next n
    Target.NumberFormat = """" & a & """;""" & a & """;""" & a & """;""" & a & """"
End Sub
Run Code Online (Sandbox Code Playgroud)

在我的新工作簿中,我有这个代码:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = Info.Range("AA9").Address Then
        Workbooks("PERSONAL.XLSB").Password Target
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

我一直在说错误, Compile error: Invalid use of property

tig*_*tar 5

以下是您从个人工作簿中运行宏的方法:

Application.Run "PERSONAL.XLSB!Password", Target
Run Code Online (Sandbox Code Playgroud)

[编辑]值得注意的是,您可以这样做,而不是构建*字符串的循环:

Public Sub Password(ByVal Target As Range)

    Dim sMask as String

    sMask = Mid(WorksheetFunction.Rept(";""" & String(Len(Target.Value), "*") & """", 4), 2)
    Target.NumberFormat = sMask

End Sub
Run Code Online (Sandbox Code Playgroud)