如何在COUNTIF公式中使用已定义区域与Cell.Row属性
问题解决方法
你的代码核心问题是混淆了VBA语法和Excel公式语法,直接改用Excel原生公式写法即可解决公式报错的问题。
修正后的代码:
pr = WC.Cells(Rows.Count, "A").End(xlUp).Row Dim rng As Range Set rng = Application.Range("YMS!U2:U" & pr) For Each cel In rng.Cells ' 直接用定义好的名称rng2作为统计范围,M列单元格用Excel标准引用格式 cel.Formula = "=COUNTIF(rng2, M" & cel.Row & ")" Next cel ' 建议移除不必要的On Error Resume Next,避免掩盖其他潜在错误
关键修正说明:
- Excel公式必须以
=开头,这是公式生效的基础要求 - 定义的动态区域
rng2可直接在Excel公式中使用,不需要用VBA的Range()包裹 - 条件部分直接写
M" & cel.Row & ",对应当前行的M列单元格,Excel会自动识别为合法引用
内容的提问来源于stack exchange,提问作者Mike T
相关产品推荐
相关产品推荐

