Excel VBA - 选择案例 - 多个测试表达式

Posted

技术标签:

【中文标题】Excel VBA - 选择案例 - 多个测试表达式【英文标题】:Excel VBA - Select Case - Multiple Test Expressions 【发布时间】:2014-11-17 14:24:58 【问题描述】:

我正在尝试编写一个 Select Case 语句,它查看整个 A 列中的一系列值,然后执行语句。

到目前为止,我可以让我的 select case 语句适用于 A2 行,但如果不给我一个“类型不匹配错误”,我就无法让它与一系列值一起工作。

工作

Select Case range("A2").Value

Case "01"
    range("G2").Value = "Admin"
    range("I2").Value = "None"
    range("J2").Value = "None"
    range("K2").Value = "None"
    range("H2").Value = "No Affiliation"
    range("T2").Value = "99999"

不工作(类型不匹配错误

Select Case Range ("A2:A1000").Value

Case "01"
    range("G2").Value = "Admin"
    range("I2").Value = "None"
    range("J2").Value = "None"
    range("K2").Value = "None"
    range("H2").Value = "No Affiliation"
    range("T2").Value = "99999"

Case "A"
    range("G2").Value = "Dealer"
    range("I2").Value = "None"
    range("J2").Value = "None"
    range("K2").Value = "None"

【问题讨论】:

【参考方案1】:

您需要逐步遍历范围中的每个单元格,“A2:A1000”将返回一个数组,而不是一个值。

Sub SO()

Dim rNum As Long

For rNum = 2 To 1000

   Select Case Range("A" & rNum).Value
      Case "01"
         Range("G" & rNum).Value = "Admin"
         Range("I" & rNum).Value = "None"
         Range("J" & rNum).Value = "None"
         Range("K" & rNum).Value = "None"
         Range("H" & rNum).Value = "No Affiliation"
         Range("T" & rNum).Value = "99999"

      Case "A"
         Range("G" & rNum).Value = "Dealer"
         Range("I" & rNum).Value = "None"
         Range("J" & rNum).Value = "None"
         Range("K" & rNum).Value = "None"

      Case Else
         '// Do something else...
   End Select

Next rNum

End Sub

【讨论】:

非常感谢您的帮助!这也将帮助我逐步完成增加其他范围值的过程!

以上是关于Excel VBA - 选择案例 - 多个测试表达式的主要内容,如果未能解决你的问题,请参考以下文章

VBA案例选择多个条件

一个可以使用多个正则表达式进行多次尝试匹配,并进行替换的Excel VBA自定义函数(UFD)

Excel VBA结束选择没有选择案例

选择具有复杂返回值的案例 (VBA 2007)

VBA for Excel - 如果更深的选择案例不匹配标准,请再次避免输入代码

在VB6/VBA中使用正则表达式