在给定特定输入的情况下,使用VBA在列中输出值

时间:2011-06-09 12:51:54

标签: vba excel-vba excel

这就是我想做的事情:

我在列中有一个值列表。我希望VBA读取该列,然后根据我给出的条件将值输出到新列中。例如,如果A列中的值介于1和2之间,我希望b列中的值为6,如果值介于2和3之间,我希望b列中的值为20。

谢谢!

2 个答案:

答案 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