这就是我想做的事情:
我在列中有一个值列表。我希望VBA读取该列,然后根据我给出的条件将值输出到新列中。例如,如果A列中的值介于1和2之间,我希望b列中的值为6,如果值介于2和3之间,我希望b列中的值为20。
谢谢!
答案 0 :(得分:2)
在B1中输入公式:
=Test(A1)
然后将其复制到您需要的地方。
放下以下功能。
Function Test(v)
Test = "Default"
If v >= 1 And v <= 2 Then Test = 6
If v >= 3 And v <= 4 Then Test = 20
'Add more conditions here...
End Function
如果需要,将函数重命名为您想要的任何内容。
希望这有帮助
答案 1 :(得分:2)
试试这个:
Dim r as Range, i as Integer, N as Integer
N = 20 'number of values
Set r = Range("A2").Resize(N,1) 'A2 is top left of column
Dim values() as Variant
values = r.Value 'Read all values from worksheet to array
For i=1 to N
'Step through the values and transform according to your rules
If values(i,1)>=1 And values(i,1)<2 then
values(i,1) = 6
ElseIf values(i,1)>=2 And values(i,1)<3 then
values(i,1) = -3
Else If
...
End If
Next i
'Go to columns on the *right* and output transformed array there
r.Offset(0,1).Value = values