如何获得“选择案例以测试范围内的每个单元格?

Posted

技术标签:

【中文标题】如何获得“选择案例以测试范围内的每个单元格?【英文标题】: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 【参考方案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

没有任何其他代码。

参考:

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/for-eachnext-statement https://docs.microsoft.com/en-us/office/vba/api/excel.range.value

【讨论】:

感谢您解决了我的问题,但现在,该范围内的 5 个术语的输出仅为“喵”。

以上是关于如何获得“选择案例以测试范围内的每个单元格?的主要内容,如果未能解决你的问题,请参考以下文章

求教,如何获得comboBox中当前选择的值

如何获得物体度数?

如何在一行上获得 3d 瓷砖并在悬停时获得缩放效果?

PHP如何获得POST传来的值?

CSDN如何获取C币

SQl中如何获得时间的时,分,秒部分?