Statistica 64 - 如何让宏找到其文件名?

时间:2018-05-25 21:34:58

标签: vba statistica

*注意:编辑此问题以联系VBA用户,因为它可能与Excel使用的过程相同。 SVB只是VBA的一种特殊形式。

我有一个存储在FileA.svb文件中的宏。

在这种情况下,它是Main(),它调用文件中的其他函数。

我需要我的宏来找出它保存的文件的名称。 以下工作,但如果有多个宏打开,它当然会得到一个错误的答案。

' Get the name of this macro / analysis  
    Dim strMacroName As String  
    strMacroName = Application.Macros.Item(1)  
    Debug.Print strMacroName  

在Statistica(或Excel)中,是否有一个属性允许函数/宏查看存储它的文件的名称?对于Excel,我不想要XLS文件,而是包含函数的代码模块的名称。不幸的是,我不认为SVB有“Me”关键字。

2 个答案:

答案 0 :(得分:0)

在Excel中,以下内容仅在您使用VBE时才能正常工作:

Application.VBE.VBProjects(1).FileName
Application.VBE.ActiveVBProject.Name
Application.VBE.ActiveCodePane.CodeModule

我不知道如何解决这个问题,然后将其硬编码到宏中。

参见Mathieu Guindon的帖子:Code Review: Managing a programmatically accessible stack trace

它是这样的......但完全实现了CallStack类:

Option Explicit
Private Const ModuleName As String = "Module1"

Sub DoSomething(ByVal value1 As Integer, ByVal value2 As Integer, ByVal value3 As String)
    CallStack.Push ModuleName, "DoSomething", value1, value2, value3
    TestSomethingElse value1
    CallStack.Pop
End Sub

答案 1 :(得分:0)

MsgBox Application.ActiveMacroEx(False).Name

MsgBox Application.ActiveMacroEx(False).FullName