在VBA中使用FormulaR1C1和COUNTIF碰到的一个很昏倒的问题

我在VBS中使用了下面的宏Cells(r,2).FormulaR1C1="=IF(ISERROR(COUNTIF(SecurityCenter!B:B,""Pass"")... 我在VBS中使用了下面的宏
Cells(r, 2).FormulaR1C1 = "=IF(ISERROR(COUNTIF(SecurityCenter!B:B,""Pass"")),""-"",COUNTIF(SecurityCenter!B:B,""Pass""))"
其中SecurityCenter是已经存在的一个表,存放了结果,统计其中Pass的数目
运行这段代码后,宏被正确设置了 但是显示的是"-"
双击Cell(r,2)的格子里面,显示出光标,进入可以编辑的方式, 然后点回车,这段宏就可以正确的运行 统计出数字来
请教各位大侠这是为什么啊
回一楼: 能帮忙找一下么? 不过我运行宏以后,内容会改变为"-" 说明这段代码已经运行了。 只是COUNTIF没有返回正确结果。
回二楼:为什么要把第二列换成第三列? 感觉没有道理,而且我用"=IF(ISERROR(COUNTIF(SecurityCenter!B,""Pass"")),""-"",COUNTIF(SecurityCenter!B,""Pass""))" 是不行的
展开
 我来答
百度网友b4a6a624d
2008-11-15 · TA获得超过1万个赞
知道大有可为答主
回答量:5110
采纳率:50%
帮助的人:6653万
展开全部
Cells(r, 2).FormulaR1C1 = "=IF(ISERROR(COUNTIF(SecurityCenter!C,""Pass"")),""-"",COUNTIF(SecurityCenter!C,""Pass""))"

************
C不是代表第三列,VBA中单元个格是用RC格式来表示的。

你可以这样试试,录制宏,然后输入你的公式。看看录制进去的公式是什么样子的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ypgeng
2008-11-19 · TA获得超过4904个赞
知道大有可为答主
回答量:1499
采纳率:75%
帮助的人:876万
展开全部
把Cells(r, 2).FormulaR1C1 改为Cells(r, 2).Formula就可以了,因为你用的是R1C1引用方式,而SecurityCenter!B:B是另一种不同的单元格引用方式,所以
ISERROR(COUNTIF(SecurityCenter!B:B,""Pass"")),永远为真,结果永远为"-"
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bati8888
2008-11-14 · TA获得超过3716个赞
知道大有可为答主
回答量:4669
采纳率:0%
帮助的人:2063万
展开全部
没有更新。在表里编辑按回车EXCEL自动重算,但在程序里要加以行代码,强制重算,具体我忘了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式