ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 数字大小判断后,进行填充

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-7 20:38 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
1、判断第13列的数字大小。
2、判断第14列的数字大小
3、再13、14列相互比对。
4、判断22列的大小
5、填入相应的16、17、18、19、20、21列中
6、问题:有时为空;22列为0时,问题最突出;
代码在附件中,可以删除16、17、18、19、20、21列的内容,运行看效果
谢谢各位大神,帮忙给看看



数字大小判断.rar

10.77 KB, 下载次数: 12

TA的精华主题

TA的得分主题

发表于 2018-7-7 21:18 | 显示全部楼层
If (Cells(i, 13) > Cells(i, 14)) And (Cells(i, 13) > 6 And Cells(i, 14) > 6) And (Cells(i, 22) > 0) Then     类似条件相同就可合并啦

TA的精华主题

TA的得分主题

发表于 2018-7-7 21:42 | 显示全部楼层
数字大小判断.rar (14.24 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2018-7-7 21:43 | 显示全部楼层
  1. Sub test()
  2.     S1 = Timer
  3.     Range("O2:U1000") = ""
  4.     For i = 2 To Range("m65536").End(xlUp).Row
  5.         If Val(Cells(i, 22)) > 0 Then
  6.             If Val(Cells(i, 13)) > Val(Cells(i, 14)) Then
  7.                 If Val(Cells(i, 13)) > 6 And Val(Cells(i, 14)) > 6 Then
  8.                     Cells(i, 19) = 1: Cells(i, 20) = 1: Cells(i, 21) = 1
  9.                 ElseIf Val(Cells(i, 13)) > 6 And Val(Cells(i, 14)) < 7 Then
  10.                     Cells(i, 18) = 1: Cells(i, 17) = 1: Cells(i, 16) = 1
  11.                 ElseIf Val(Cells(i, 13)) < 7 And Val(Cells(i, 14)) < 7 Then
  12.                     Cells(i, 18) = 1: Cells(i, 17) = 1: Cells(i, 16) = 1
  13.                 End If
  14.             End If
  15.             If Val(Cells(i, 13)) < Val(Cells(i, 14)) Then
  16.                 If Val(Cells(i, 13)) > 6 And Val(Cells(i, 14)) > 6 Then
  17.                     Cells(i, 19) = 1: Cells(i, 20) = 1: Cells(i, 21) = 1
  18.                 ElseIf Val(Cells(i, 13)) < 7 And Val(Cells(i, 14)) < 7 Then
  19.                     Cells(i, 16) = 1: Cells(i, 17) = 1: Cells(i, 18) = 1
  20.                 ElseIf Val(Cells(i, 13)) < 7 And Val(Cells(i, 14)) > 6 Then
  21.                     Cells(i, 16) = 1: Cells(i, 17) = 1: Cells(i, 18) = 1
  22.                 End If
  23.             End If
  24.         End If
  25.     Next i
  26.     MsgBox "宏本次运行消耗时间" & Timer - S1 & "秒!"
  27. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-7 22:42 | 显示全部楼层
本帖最后由 346258674 于 2018-7-7 22:48 编辑

不对呀,大哥,
1、每一行6个空位,只有一个填数字1;
2、13、14中数字中含有小于7的数字,就填入16、17、18列,填入某1列,由22列的正负或0来决定;
3、13、14中数字中没有小于7的数字,就填入19、20、21列,填入某1列,由22列的正负或0来决定。
4、16、17、18、19、20、21列中只有1个也必须有1列填入数字1,不会出现空行,且22列为0时,16-22列为空未解决。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-7 22:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不对呀,大哥,
1、每一行6个空位,只有一个填数字1;
2、13、14中数字中含有小于7的数字,就填入16、17、18列,填入某1列,由22列的正负或0来决定;
3、13、14中数字中没有小于7的数字,就填入19、20、21列,填入某1列,由22列的正负或0来决定。
4、16、17、18、19、20、21列中只有1个也必须有1列填入数字1,不会出现空行,且22列为0时,16-22列为空未解决。

TA的精华主题

TA的得分主题

发表于 2018-7-7 23:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
346258674 发表于 2018-7-7 22:52
不对呀,大哥,
1、每一行6个空位,只有一个填数字1;
2、13、14中数字中含有小于7的数字,就填入16、17 ...

您原件上不是每行填3个吗?

TA的精华主题

TA的得分主题

发表于 2018-7-7 23:21 | 显示全部楼层
  1. Sub ABC()
  2.     S1 = Timer
  3.     Range("O2:U1000") = ""
  4.     For i = 2 To Range("m65536").End(xlUp).Row
  5.         a = Val(Cells(i, 13))
  6.         b = Val(Cells(i, 14))
  7.         If Val(Cells(i, 22)) > 0 Then
  8.             If a > b Then
  9.                 If a > 6 And b > 6 Then
  10.                     Cells(i, 19) = 1
  11.                 ElseIf a > 6 And b < 7 Then
  12.                     Cells(i, 20) = 1
  13.                 ElseIf a < 7 And b < 7 Then
  14.                     Cells(i, 21) = 1
  15.                 End If
  16.             End If
  17.             If a < b Then
  18.                 If a > 6 And b > 6 Then
  19.                     Cells(i, 16) = 1
  20.                 ElseIf a < 7 And b < 7 Then
  21.                     Cells(i, 17) = 1
  22.                 ElseIf a < 7 And b > 6 Then
  23.                     Cells(i, 18) = 1
  24.                 End If
  25.             End If
  26.         ElseIf Val(Cells(i, 22)) = 0 Then
  27.         
  28.         
  29.         
  30.         ElseIf Val(Cells(i, 22)) < 0 Then
  31.         
  32.         
  33.         End If
  34.     Next i
  35.     MsgBox "宏本次运行消耗时间" & Timer - S1 & "秒!"
  36. End Sub
  37. 自己调整吧
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-9 01:18 | 显示全部楼层
谢谢大师,搞定,谢谢指点,学到的点有:
1、思路,由22列为出发点,
2、val()命令
3、嵌套的if语句,完美,
受教了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-6 15:06 , Processed in 0.026144 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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