找出哪个工作簿称为宏

时间:2015-10-13 13:01:21

标签: excel excel-vba vba

我在工作簿ABC中有一个宏。我想找出其他工作簿正在调用这个宏,因为我们将要替换它的功能。有没有办法告诉什么工作簿在执行时调用宏?或者Application.Run是否从被调用的宏中隐藏了它?

1 个答案:

答案 0 :(得分:2)

我不确定如何获取工作簿名称。您可以记录工作站和用户,然后转到工作站并启动Excel并转到文件 - >最近看到计算机上最近使用的工作簿。

您可以将日志文件写入包含宏的工作簿的位置。

从宏调用这样的东西。

  

在VBA IDE中,转到工具菜单并选择参考。选择" Microsoft脚本运行时"

Private Sub LogUsage()

    Dim ts As TextStream
    Dim fs As FileSystemObject
    Dim strLogFile As String

    strLogFile = Application.ActiveWorkbook.Path & "\Usage.txt"

    'Check if the file exists, if it does, open it, if it doesn't create it
    Set fs = New FileSystemObject
    If fs.FileExists(strLogFile) = True Then
        Set ts = fs.OpenTextFile(strLogFile, ForAppending)
    Else
        Set ts = fs.CreateTextFile(strLogFile, True, False)
    End If

    'Log your entry
    ts.WriteLine "Used by " & Environ$("Username") & " at " & Now & " on computer " & Environ$("Computername")

     'Clean up
     ts.Close: Set ts = Nothing
     Set fs = Nothing

 End Sub