首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果其他树使用Case函数或VLOOKUP

如果其他树使用Case函数或VLOOKUP
EN

Stack Overflow用户
提问于 2022-10-25 19:21:07
回答 1查看 62关注 0票数 0

我已经编写了这段代码,但是,我的if/ each语句树非常长,而且是重复的,只对每种情况的变量设置为几个值。我已经阅读了使用VBA Select Case语句在测试多个条件时使用的好处,在我的情况下测试wsName是什么和rate_value是什么。下面是我的代码当前的样子,如果有人可以提供一个大纲,说明我如何使用Select Case方法或使用一个非常受欢迎的VLOOKUP表。作为参考,在调用这些行之前定义了wsNamerate_value

代码语言:javascript
运行
复制
If wsName = "Test-3" Then
   If rate_value < 50 Then
       snapdownvol = 95
   ElseIf rate_value = 50 Then
       snapdownvol = 98
       sweep_value = 49.8
       sweep_value_max = 50.2
   ElseIf rate_value = 100 Then
       snapdownvol = 110
       sweep_value = 99.8
       sweep_value_max = 100.2
   ElseIf rate_value = 200 Then
       snapdownvol = 110
       sweep_value = 199.4
       sweep_value_max = 200.4
   ElseIf rate_value > 200 Then
       MsgBox "Rate Value for " & sysnum & " is greater than 200 kHz. Rate Min and Max will be 0."
   End If
ElseIf wsName = "Test-6" Then
   If rate_value < 50 Then
       snapdownvol = 98
   ElseIf rate_value = 50 Then
       snapdownvol = 98
       sweep_value = 49.8
       sweep_value_max = 50.2
   ElseIf rate_value = 100 Then
       snapdownvol = 125
       sweep_value = 99.8
       sweep_value_max = 100.2
   ElseIf rate_value = 200 Then
       snapdownvol = 125
       sweep_value = 199.4
       sweep_value_max = 200.4
   ElseIf rate_value > 200 Then
       MsgBox "Rate Value for " & sysnum & " is greater than 200 kHz. Rate Min and Max will be 0."
   End If
ElseIf wsName = "Test-8" Then
   If rate_value < 50 Then
       snapdownvol = 98
   ElseIf rate_value = 50 Then
       snapdownvol = 98
       sweep_value = 49.8
       sweep_value_max = 50.2
   ElseIf rate_value = 100 Then
       snapdownvol = 125
       sweep_value = 99.8
       sweep_value_max = 100.2
   ElseIf rate_value = 200 Then
       snapdownvol = 125
       sweep_value = 199.4
       sweep_value_max = 200.4
   ElseIf rate_value > 200 Then
       MsgBox "Rate Value for " & sysnum & " is greater than 200 kHz. Rate Min and Max will be 0."
   End If
End If
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-25 20:01:33

由于重复次数很多,我会选择Case Select:

代码语言:javascript
运行
复制
Select Case rate_value
    Case Is < 50
        Select Case wsName
            Case "Test-3"
                snapdownvol = 95
            Case "Test-6", "Test-8"
                snapdownvol = 98
        End Select
    Case Is = 50
        snapdownvol = 98
        sweep_value = 49.8
        sweep_value_max = 50.2
    Case Is = 100
        Select Case wsName
            Case "Test-3"
                snapdownvol = 110
            Case "Test-6", "Test-8"
                snapdownvol = 125
        End Select
        sweep_value = 99.8
        sweep_value_max = 100.2
    Case Is = 200
        snapdownvol = 110
        sweep_value = 199.4
        sweep_value_max = 200.4
    Case Is > 200
        MsgBox "Rate Value for " & sysnum & " is greater than 200 kHz. Rate Min and Max will be 0."
End Select
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74199166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档