Vba 对于Application.Run方法,什么是;一个范围对象,用于指示函数的位置";?

Vba 对于Application.Run方法,什么是;一个范围对象,用于指示函数的位置";?,vba,excel,Vba,Excel,范围对象可以是的参数是什么意思 文档中说,第一个参数是“要运行的宏。它可以是一个带有宏名称的字符串、一个指示函数位置的范围对象,或者是一个注册DLL(XLL)函数的寄存器ID。如果使用字符串,将在活动工作表的上下文中计算该字符串。” 它是指带有函数名还是代码的范围?我的测试都不起作用: Public Function TestFunctionA() MsgBox "It works!" End Function Sub FirstTestOfRunFromRange() 'Functi

范围对象可以是的参数是什么意思

文档中说,第一个参数是“要运行的宏。它可以是一个带有宏名称的字符串、一个指示函数位置的范围对象,或者是一个注册DLL(XLL)函数的寄存器ID。如果使用字符串,将在活动工作表的上下文中计算该字符串。”

它是指带有函数名还是代码的范围?我的测试都不起作用:

Public Function TestFunctionA()
    MsgBox "It works!"
End Function

Sub FirstTestOfRunFromRange()
'Function name in a cell
    Dim rngA As Range
    Set rngA = ActiveSheet.Range("A1")
    rngA = "TestFunctionA"
    Application.Run "TestFunctionA"
    Application.Run rngA
End Sub

Sub SecondTestOfRunFromRange()
'Function code in a cell
    Dim rngA As Range
    Set rngA = ActiveSheet.Range("A1")
    rngA = "Public Function TestFunctionB()" & _
        vbCrLf & "MsgBox ""It works!""" & _
        vbCrLf & "End Function"
    Application.Run rngA
End Sub

Sub ThirdTestOfRunFromRange()
'Function code as one line per cell
    Dim rngA As Range
    Set rngA = ActiveSheet.Range("A1")
    rngA.Offset(0, 0) = "Public Function TestFunctionB()"
    rngA.Offset(1, 0) = "MsgBox ""It works!"""
    rngA.Offset(2, 0) = "End Function"
    Set rngA = rngA.CurrentRegion
    Application.Run rngA
End Sub

Sub FourthTestOfRunFromRange()
'Function code as one line in one cell
    Dim rngA As Range
    Set rngA = ActiveSheet.Range("A1")
    rngA = "Public Function TestFunctionB(): MsgBox ""It works!"": End Function"
    Application.Run rngA
End Sub

Sub FifthTestOfRunFromRange()
'Code step in a cell
    Dim rngA As Range
    Set rngA = ActiveSheet.Range("A1")
    rngA = "MsgBox ""It works!"""
    Application.Run rngA
End Sub

应用程序的范围参数选项。Run
指的是
Excel 4宏
范围
设置为
工作表上宏的第一个单元格


应用程序的范围参数选项。Run指的是
Excel 4宏
范围
设置为
工作表上宏的第一个单元格


你在docs.microsoft.com上读到的任何东西,我都会毫不犹豫地接受。“新”文档完全是垃圾。添加“我的所有测试都不工作”意味着什么可能有用,例如任何错误消息?@QHarr这是一个错误1004,但我已验证它们实际上都不工作(所有错误1004)。我不记得在旧的MSDN Excel对象模型文档中看到过被称为参数的
Range
。我对你在docs.microsoft.com上读到的任何东西都持保留态度。“新”文档完全是垃圾。添加“我的所有测试都不工作”意味着什么可能有用,例如任何错误消息?@QHarr这是一个错误1004,但我已验证它们实际上都不工作(所有错误1004)。我不记得在旧的MSDN Excel对象模型文档中看到过被称为参数的
范围。。。下次打开1992年左右创建的工作簿时,我必须记住这一点#直到回答这个问题。哇,这是一些模糊的信息。。。下次打开1992年左右创建的工作簿时,我必须记住这一点#直到我对这个答案脱帽致敬。