WorksheetFunction 所需的对象

Object required for WorksheetFunction

我有一个包含 2 个下拉列表的用户表单,我在公式中使用这些列表的值来向用户显示结果。我在将公式结果存储在变量中并将其显示在消息框中时遇到问题。我有下面的代码,但它会抛出 "Object required" 错误。我看过一些将结果放在单元格中的公式示例,但我不需要在消息框以外的任何地方显示我的值。关于导致我的代码失败的原因有什么想法吗?

Dim selBranch As String
Dim selSkillTitle As String
Dim result As Variant

selBranch = frmQuery.cboBranch.Value
selSkillTitle = frmQuery.cboSkillTitle.Value

result = WorksheetFunction.AverageIfs(skill_prof, branch, selBranch, skill_title, selSkillTitle)

MsgBox "Query Result" & vbNewLine & "--------------" & vbNewLine & _
    "Branch: " & branch & vbNewLine & _
    "Skill Level: " & skillTitle & vbNewLine & vbNewLine & _
    "Average Skill Proficiency: " & CStr(result), vbInformation

skill_profbranchskill_title 都是我工作簿中的命名范围。

WorksheetFunction.AverageIfs(....) 期望一些范围变量而不是未声明的空变量。

您提到它们是命名范围,因此您需要正确的语法来引用它们,可能以多种方式这样做,这里是一个:

Dim skill_prof as range: Set skill_prof = Worksheets("WhicheverSheet").Range("skill_prof")
'Etc

以上将确保您可以在代码中使用相同的公式。只需确保这些命名范围 大小相等 =)