如何获得“选择案例以测试范围内的每个单元格?
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 个术语的输出仅为“喵”。以上是关于如何获得“选择案例以测试范围内的每个单元格?的主要内容,如果未能解决你的问题,请参考以下文章