虽然我已经编写了一些其他的东西,但我对VBA Excel相对较新。 我试图交叉比较1到0之间的一列数字称为得分,结果可以是4中的一个,取决于值。然而,我只得到相同的结果(1),无论我如何编码(我只尝试使用“To”或仅使用“<> =”)但没有任何作用。我似乎无法让它通过我的专栏工作,一次只在一个单元格中(每当我将范围扩展到“B2:B7”时,它会给我一个不匹配的错误。
我想要的是它实际上给了我正在寻找的结果并通过一个或多个单元格进行处理。
感谢您的时间
以下是代码:
Sub Vertical_Analysis()
Sheets("Vertical").Select
Dim score As Integer
score = Range("B2").Value
Dim result As String
Select Case score
Case Is >= 0.15
result = "1"
Case 0.11 To 0.14
result = "0.6"
Case 0.08 To 0.1
result = "0.3"
Case Is <= 0.07
result = "0"
End Select
Range("B21").Value = result
End Sub
答案 0 :(得分:3)
首先score
需要是双倍而不是整数。
然后循环使用For Each。
最后一部分.Range("B21").Offset(i).Value = result
将每个结果向下移动一行,以便它们不会相互替换。
试试这个:
Sub Vertical_Analysis()
Dim score As Double, result As String
Dim Rng As Range, i As Long
i = 0
With Sheets("Vertical")
For Each Rng In .Range("B2:B7")
score = Rng.Value
Select Case score
Case Is >= 0.15
result = "1"
Case 0.11 To 0.14
result = "0.6"
Case 0.08 To 0.1
result = "0.3"
Case Is <= 0.07
result = "0"
End Select
.Range("B21").Offset(i).Value = result
i = i + 1
Next Rng
End With
End Sub