ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: cherga

[求助] 请各位大神精英赐我一个神奇VBA吧

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-14 07:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你的判断标准是这个:
营养状况评价:数据先匹配表A,异常的直接判断“生长迟缓”,正常的接着用表B匹配,异常的判断“轻度消瘦”及“中重度消瘦”,其他的判断正常(用空白表示)
肥胖评价:根据表C来判断是超重、还是肥胖,正常的显都示空白
先匹配A,如果正常再匹配B,所以以第十行数据为例:判断A时为异常,就不需要再判断B了。
至于A为异常,是不是还要判断C,前面的判断标准没有说明。
可以根据你的需要自行修改。

TA的精华主题

TA的得分主题

发表于 2018-7-15 13:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cherga 发表于 2018-7-13 17:22
我把代码判断的结果跟实际结果弄在一起 麻烦老师再看下哪里错了

用函数做了下!请参考!
营养状况评价.rar (32.56 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2018-7-15 22:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
再请参考!
营养状况评价-.rar (93.63 KB, 下载次数: 7)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-16 08:44 | 显示全部楼层
本帖最后由 cherga 于 2018-7-16 09:07 编辑

非常感谢帮忙,但是发现还是有错啊 首先营养评价跟肥胖是分开的,不相关;其次营养评价要先用表A判断,判断正常的这些数据再去用表B判断,异常的直接诊断生长迟缓就不要再用表B诊断了,不用诊断是否消瘦。因为营养不良包括生长迟缓和消瘦,诊断迟缓就不去诊断消瘦,生长没迟缓的再去判断是否消瘦,谢谢。

TA的精华主题

TA的得分主题

发表于 2018-7-16 09:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cherga 发表于 2018-7-16 08:44
非常感谢帮忙,但是发现还是有错啊 首先营养评价跟肥胖是分开的,不相关;其次营养评价要先用表A判断,判 ...

请参考!是按此标准设计的!
营养评价标准.rar (80.18 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2018-7-16 09:37 | 显示全部楼层
cherga 发表于 2018-7-16 08:44
非常感谢帮忙,但是发现还是有错啊 首先营养评价跟肥胖是分开的,不相关;其次营养评价要先用表A判断,判 ...

请参考!
Sub lqxs()
    Dim Drr, i&, Myr&
    Dim xb$, col%, nl
    Sheet1.Activate
    [o4:p500].ClearContents
    Myr = Cells(Rows.Count, 6).End(xlUp).Row
    Drr = Range("f4:p" & Myr)
    For i = 1 To UBound(Drr)
        xb = Drr(i, 1): nl = Drr(i, 5)
        If xb = "男" Then col = 2 Else col = 3
        If Drr(i, 7) <= Application.VLookup(nl, [CS], col) Then Cells(i + 3, 15) = "生长迟缓": GoTo 100
        If xb = "男" Then col = 2 Else col = 4
        If Drr(i, 9) <= Application.VLookup(nl, [CS], 2 + col) Then Cells(i + 3, 15) = "中重度消瘦": GoTo 100
        If Drr(i, 9) <= Application.VLookup(nl, [CS], 3 + col) Then Cells(i + 3, 15) = "轻度消瘦": GoTo 100
        If nl > 18 And Drr(i, 9) < 18.5 Then Cells(i + 3, 16) = "体重过轻": GoTo 100
        If Drr(i, 9) >= Application.VLookup(nl, [CS], 6 + col) Then Cells(i + 3, 16) = "超重"
        If Drr(i, 9) >= Application.VLookup(nl, [CS], 7 + col) Then Cells(i + 3, 16) = "肥胖"
100:
    Next
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-16 09:41 | 显示全部楼层
YZC51 发表于 2018-7-16 09:26
请参考!是按此标准设计的!

跟我的那份标准一样,只是我的少了18岁以上的,但是您的编码在诊断营养不良时很多都是诊断消瘦而不是生长迟缓(优先诊断生长迟缓),肥胖超重无误

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-16 09:49 | 显示全部楼层
YZC51 发表于 2018-7-16 09:37
请参考!
Sub lqxs()
    Dim Drr, i&, Myr&

可以了 非常感谢。如果我想用我自己的参数,要修改哪些内容跟排版

TA的精华主题

TA的得分主题

发表于 2018-7-16 10:05 | 显示全部楼层
本帖最后由 YZC51 于 2018-7-16 10:09 编辑

请参考!自定义函数
Function YYPJ(t1, t2, t3, t4, gs)
    Dim col%
    If t1 = "男" Then col = 2 Else col = 3
    If gs = 1 Then
        If t3 <= Application.VLookup(t2, [CS], col) Then YYPJ = "生长迟缓": Exit Function
        If t4 <= Application.VLookup(t2, [CS], 2 + col) Then YYPJ = "中重度消瘦": Exit Function
        If t4 <= Application.VLookup(t2, [CS], 3 + col) Then YYPJ = "轻度消瘦": Exit Function
    Else
        If t2 > 18 And t4 < 18.5 Then YYPJ = "体重过轻": Exit Function
        If t4 >= Application.VLookup(t2, [CS], 7 + col) Then YYPJ = "肥胖": Exit Function
        If t4 >= Application.VLookup(t2, [CS], 6 + col) Then YYPJ = "超重"
    End If
    If YYPJ = 0 Then YYPJ = ""
End Function

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-7-16 10:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
cherga 发表于 2018-7-16 09:49
可以了 非常感谢。如果我想用我自己的参数,要修改哪些内容跟排版

可以用上面的自定义函数!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-9 15:53 , Processed in 0.028946 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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