ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 Office知识技巧免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 105|回复: 2

循环计数不成功

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-2-10 15:57 | 显示全部楼层 |阅读模式
我要统计j列满足条件数值大于wl的人数,
     wl=66    '通过inputbox正常获取
    n=692    '通过counta工作簿函数正常获取
     rs = 0
     For x = 2 To Val(n)
      If stu(x, j) >= wl Then rs = rs + 1
      MsgBox stu(x, j) & "    是否大于    " & wl & "    人数    " & rs
     Next x

用msgbox显示数据,stu(x,j)正常显示,有大于wl的,有小于wl的,也有空值"",但人数rs始终 是0 值,过程也没有报错。
数据涉及隐私,其它代码又太长,就不把附件传上来了。
请哪位大侠帮我分析一下可能的原因。谢谢!

TA的精华主题

TA的得分主题

发表于 2020-2-10 17:25 | 显示全部楼层
没有附件不能测试代码。
  1. For x = 2 To Val(n)
  2.       If stu(x, j) >= wl Then rs = rs + 1
  3. Next
  4. If rs>0 Then      MsgBox  "    大于    " & wl & "    人数为    " & rs
  5.    
复制代码

TA的精华主题

TA的得分主题

发表于 2020-2-10 18:15 | 显示全部楼层
显然下列代码句出了问题:
If stu(x, j) >= wl Then rs = rs + 1

评:检查stu函数返回的数据类型,同时检查wl变量的数据类型。

检查方法:
Debug.Print TypeName(stu(x,j))
Debug.Print TypeName(wl)
二者的数据类型均应该为数值型,譬如Long型、Integer型或Double型等。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2020-4-5 14:38 , Processed in 0.054186 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表