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