【发布时间】:2016-04-21 16:16:48
【问题描述】:
我正在 Excel 2013 中处理一个简单的 Select Case。我希望 R 列中的值基于 Q 列中的值。但我收到类型不匹配错误。这是案例的简化版本,因为实际上有 20 个,但这是我用来测试的(以下显示类型不匹配错误):
Sub laranges()
Select Case Range("Q:Q").Value
Case 0 To 0.49
Range("R:R").Value= "Low"
Case 0.5 To 0.99
Range("R:R").Value= "Medium"
Case Else
Range("R:R").Value = "High"
End Select
结束子
如果我将其更改为仅选择一个单元格,则以下工作有效(我已经在多个单元格上对其进行了测试,并且它们都单独成功):
Sub laranges()
Select Case Range("Q2").Value
Case 0 To 0.49
Range("R2").Value = "Low"
Case 0.5 To 0.99
Range("R2").Value = "Medium"
Case Else
Range("R2").Value = "High"
End Select
结束子
显然我没有正确引用范围。我也尝试将范围更改为 Q2:Q3 和 R2:R3,但我得到了同样的错误。但是,如果我单独引用 Q2 和 Q3,它们会成功运行。
【问题讨论】:
-
您不能从超过 1 个单元格中获取
value。 -
好吧,您实际上可以获取多个单元格的 .Value 或 .Value2 ,但您最终会得到一个无法作为单个值处理的数组。遍历 Q2:Q
中的值或处理平均值、平均值、总和等。 -
如果 Q1 有“.3”而 Q2 有“.99”会发生什么?在这种情况下你的潜艇应该做什么?这就是出现不匹配错误的原因。
-
@Jeeped 很高兴知道!
-
@findwindow - 通常将一系列单元格的值加载到变体数组中。