在 COUNTIFS 中使用命名范围
Posted
技术标签:
【中文标题】在 COUNTIFS 中使用命名范围【英文标题】:Use Named range in a COUNTIFS 【发布时间】:2018-03-01 10:09:04 【问题描述】:我遇到了需要与命名范围(动态范围)一起使用的计数公式。
所以我用第一行和最后使用的行设置了我的范围,它显然有效。 但是当我想在我的计数中使用这些命名范围时,它就不起作用了。 只是为了帮助您理解,没有 vba 的 countif 看起来像这样: =NB.SI.ENS($F$28:$F$400;E16;$H$28:$H$400;"Topé")
并使用 VBA:
Dim NoPremièreLigne As Long
Dim NoDernièreLigne As Long
Dim maplage2 As string
Dim maplage3 As string
NoPremièreLigne = 28
NoDernièreLigne = Range("F" & Rows.Count).End(xlUp).Row
Set maplage2 = "H" & NoPremièreLigne & ":" & "H" & NoDernièreLigne
Set maplage3 = "F" & NoPremièreLigne & ":" & "F" & NoDernièreLigne
Range("F16").Select
ActiveCell.FormulaR1C1 = _
"=COUNTIFS(" & maplage3 & ",E16," & maplage2 & ",""Topé"")"
这不起作用,我没有错误消息,但在单元格中我有一个#name
如果您对这个问题有任何想法,非常感谢......
jm
【问题讨论】:
删除所有空格。或者试试"=COUNTIFS(" & maplage3.Address & ",E16," & maplage2.Address; " &,""*Topé*"")"
@FoxfireAndBurnsAndBurns - 看起来像是放错了引号和带有额外分号的 & 符号。
您好,我尝试了您的代码,但没有成功。所以我改变了一点我的代码来获取一个字符串,现在,我在单元格中有正确的值但是,我仍然有一个#NAME错误,因为我在公式中有':=NB.SI.ENS('F28': 'F338';'E16';'H28':'H338';"Topé") 并且属性地址返回“无效的限定符”错误
事实上,我也尝试通过使用范围(plage2/3 作为范围)等并使用地址属性来做到这一点,我得到了 1004 代码错误....
好的,我解决了我的问题: Range("F16") = _ "=COUNTIFS(" & maplage3.Address & ",E16," & maplage2.Address & ",""Topé "")" 而不是 Range("F16").Select ActiveCell.FormulaR1C1 = _ "=COUNTIFS(" & maplage3.Address & ",E16," & maplage2.Address & ",""Topé"")"跨度>
【参考方案1】:
应用一些基本的字符串连接并使用范围地址。
Range("F16").Formula = _
"=COUNTIFS(" & maplage3.address & ", E16, " & maplage2.address & ", ""*Topé*"")"
【讨论】:
您好,感谢您的回答,但属性 .adress 对我不起作用(上面消息中的解释) 我无法解释您如何获得额外的单引号来包裹您的范围地址。我也无法解释为什么您的范围地址不是绝对引用。以上是关于在 COUNTIFS 中使用命名范围的主要内容,如果未能解决你的问题,请参考以下文章