【问题标题】:How can I get 'Select Case to test each cell in range?如何获得“选择案例以测试范围内的每个单元格?
【发布时间】:2020-06-08 02:14:07
【问题描述】:

我不知道如何引用范围中的单元格,以便 Case 测试范围“动物”中的每个单元格我收到“哺乳动物 = 范围(“动物”).Value 行的错误,它显示“方法范围”对象_全局失败” 如果我不能直接引用“动物”进行案例选择,否则我会得到一个不匹配的变量错误。

Dim animal As Range
Set animal = shB.Range("M3:M8")

For Each Cell In animal
Dim mammal As String
mammal = Range("animal").Value

    Select Case mammal
        Case "cat"
            MsgBox "meow"
        Case "dog"
            MsgBox "woof"
    End Select

Next Cell

【问题讨论】:

  • 应该是mammal = Cell.Value

标签: excel vba loops case


【解决方案1】:

for-each 引用集合中的每个对象,Range 就是这样。

所以每个Cell 都引用该范围内的一个工作表单元格。此外,多单元格范围没有单个值:

对于第一个区域包含多个单元格的区域,Value 返回一个 Variant,其中包含第一个区域的各个单元格中的值的二维数组。

您不必在 VBA 中声明所有内容,.value 是范围的默认属性;

Range 的默认成员将不带参数的调用转发给 Value。因此,someRange = someOtherRange 等价于someRange.Value = someOtherRange.Value

所以这行得通:

For Each mammal In Range("A1:C1")

    Select Case mammal
        Case "cat"
            MsgBox "meow"
        Case "dog"
            MsgBox "woof"
    End Select

Next mammal

没有任何其他代码。

参考:

【讨论】:

  • 感谢您解决了我的问题,但现在,该范围内的 5 个术语的输出仅为“喵”。
猜你喜欢
  • 1970-01-01
  • 2021-06-28
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多