在使用编程创建的函数之前是否需要"注册"或"重新编译"功能?
当我向工作表添加一个函数时,我不能使用它直到控件返回到工作表.
例如:如果我的代码向工作表添加一个函数,然后尝试使用它我得到以下错误:运行时错误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)