具有命名范围的公式和问题

时间:2019-11-01 17:03:07

标签: excel vba

我有以下公式表明我在VBA中遇到问题。有3个命名范围:

= COUNTIFS(技能标题,A3,分支,$ B $ 1,技能_教授,5)

A3的值将随每一行而变化,因此这是一个相对地址,但是$ B $ 1将保持不变。我正在努力在下面的代码中如何引用这3个范围(使用.address和其他方法):

Dim skill_title As Variant
Dim branch As Variant
Dim skill_prof As Variant

skill_title = Sheets("Employee").Range("skill_title").Address
branch = Sheets("Employee").Range("branch").Address
skill_prof = Sheets("Employee").Range("skill_prof").Address


Range("B2:B836").FormulaR1C1 = "=IF(ISODD(COLUMN()), 3, COUNTIFS(" & skill_title & ", A2, " & branch & ", $B$1, " & skill_prof & ", 5))"

现在,它会引发错误,“应用程序定义的错误或对象定义的错误”,这也许是因为我的命名范围地址未包含工作表名称吗?有什么建议吗?

1 个答案:

答案 0 :(得分:0)

以下是根据BigBen的建议进行的:

Dim skill_title As Variant
Dim branch As Variant
Dim skill_prof As Variant

skill_title = Sheets("Employee").Range("skill_title").Address
skill_title = "Employee!" & skill_title
branch = Sheets("Employee").Range("branch").Address
branch = "Employee!" & branch
skill_prof = Sheets("Employee").Range("skill_prof").Address
skill_prof = "Employee!" & skill_prof

Range("B2:B836").Formula = "=IF(ISODD(COLUMN()), 3, COUNTIFS(" & skill_title & ", A2, " & branch & ", $B$1, " & skill_prof & ", 5))"