ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 多个Select case的应用。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-1-17 19:14 | 显示全部楼层 |阅读模式
1.jpg

  1. Sub ll()
  2.    Dim Dn As Integer
  3.    Dim Rng As Range
  4.    Dim NameRng  As Range, DnRng  As Range
  5.        Set Rng = Selection
  6.        Set NameRng = Rng.Areas(1)
  7.        Set DnRng = Rng.Areas(2)
  8.        Set Rng = AssoDnRng(NameRng, DnRng)
  9.        '
  10. End Sub

  11. ''
  12. Function AssoDnRng(NameRng As Range, DnRng As Range)
  13.        Dim Str, Dn
  14.        For ii = 1 To NameRng.Rows.Count
  15.            Str = NameRng(ii, 1)
  16.            'Str = Left(Str, Len(Str) - 7)
  17.            
  18.            For ii1 = 1 To DnRng.Rows.Count
  19.               Dn = DnRng(ii1, 1)
  20.               Select Case Str
  21.                  Case "¿Çìå0.SLDPRT", "·aí·0.SLDPRT"
  22.                     Select Case Dn
  23.                         Case 159, 219, 273, 325, 377, 426
  24.                     End Select
  25.                  Case "¿Çìå.SLDPRT", "·aí·.SLDPRT"
  26.                     Select Case Dn
  27.                         Case 300, 350, 400, 450, 500, 550, 600, 650, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2600, 2800, 3000, 3200, 3400, 3600, 3800, 4000
  28.                              'Debug.Print NameRng(ii, 1).Address, Str, DnRng(ii1, 1).Address, Dn
  29.                     End Select
  30.                  Case "¸1°å0.SLDPRT", "½î°å0.SLDPRT"
  31.                     Select Case Dn
  32.                         Case 159, 219, 273, 325, 377, 426, 300, 350, 400, 450, 500, 550, 600, 650, 700, 800, 900
  33.                     End Select
  34.                  Case "½î°å1.SLDPRT", "½î°å2.SLDPRT"
  35.                     Select Case Dn
  36.                         Case 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000, 2100, 2200, 2300, 2400, 2600, 2800, 3000, 3200, 3400, 3600, 3800, 4000
  37.                     End Select
  38.                     'Debug.Print NameRng(ii, 1).Address, Str, DnRng(ii1, 1).Address, Dn
  39.                  Case "½î°å3.SLDPRT"
  40.                     Select Case Dn
  41.                         Case 2100, 2200, 2300, 2400, 2600, 2800, 3000, 3200, 3400, 3600, 3800, 4000
  42.                     End Select
  43.             
  44.              End Select
  45.          Next ii1
  46.       Next ii
  47.       Set AssoDnRng = DnRng
  48. End Function
复制代码






Book1.zip

9.61 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2019-1-17 19:26 | 显示全部楼层
楼主这个是要讨论什么啊?能不能进一步细化啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-17 22:30 | 显示全部楼层
当第一个条件Str1= "Aa" 或 "Aa1"        ,再判断判断第二个条件159或219或273或325或377或426

CASE "Aa","Aa1"       
        CASE 159,219,273,325,377,426
CASE "Bb","Bb1"       
        CASE 159,219,273,325,377,426

TA的精华主题

TA的得分主题

发表于 2019-1-18 08:05 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-1-18 08:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你那个case里面的条件如果是有规律的数字,还不如用循环呢

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-1-18 12:44 | 显示全部楼层
huang1314wei 发表于 2019-1-18 08:36
你那个case里面的条件如果是有规律的数字,还不如用循环呢

肯定是有规律的数据
最外一层条件判断、最多有4种组合选择。
如"Aa","Aa1","Aa2","Aa3"
"Ba","Ba1","Ba2"
"Ca","Ca1"
.............

Case "Aa","Aa1","Aa2","Aa3"→比If like 字符串要少几个字
Case "Ba","Ba1","Ba2" →比If like 字符串要少几个字
Case "Ca","Ca1" →比If like 字符串要少几个字
................

case 159,219,273,325,377,426
case 300,350,400,450,500,550,600,650,700,800,900,1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2600,2800,3000,3200,3400,3600,3800,4000
case 159,219,273,325,377,426,300,350,400,450,500,550,600,650,700,800,900





您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 19:08 , Processed in 0.052362 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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