小编Las*_*vid的帖子

如何在VBA中使用以编程方式创建的工作表函数

在使用编程创建的函数之前是否需要"注册"或"重新编译"功能?

当我向工作表添加一个函数时,我不能使用它直到控件返回到工作表.

例如:如果我的代码向工作表添加一个函数,然后尝试使用它我得到以下错误:运行时错误438 - 对象不支持此属性或方法当我查看工作表的代码时,函数是在那里,如果我运行仅使用创建的函数的代码,则没有错误.

如何在创建后立即使用这些功能,而不是先停止?

这是代码中的一个示例 - 我在运行TestingWorkSheetFunctions时遇到错误,但在创建函数后运行TestWorkSheetFunction时却没有.

示例假定具有至少两个工作表的新工作簿(sheet1和sheet2)

Option Explicit

Public Sub TestingWorksheetFunction()

    AddWorkSheetFunction

    TestWorkSheetFunction

End Sub

Public Sub AddWorkSheetFunction()

    'Sheet1's Function
    Dim strFunctionCode As String
        strFunctionCode = _
            "Public Function HelloWorld() as string" & vbCrLf & _
            vbCrLf & _
            vbTab & "HelloWorld = ""Hello World from Sheet 1""" & vbCrLf & _
            vbCrLf & _
            "End Function"
    ThisWorkbook.VBProject.VBComponents(ThisWorkbook.Sheets("Sheet1").CodeName).CodeModule.AddFromString strFunctionCode

    'Sheet2's Function
    strFunctionCode = _
        "Public Function HelloWorld() as string" & vbCrLf & _
        vbCrLf & _ …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2010

9
推荐指数
1
解决办法
1480
查看次数

标签 统计

excel ×1

excel-2010 ×1

excel-vba ×1

vba ×1