使用VBA在给定输入的列中输出值

使用VBA在给定输入的列中输出值,vba,excel,Vba,Excel,以下是我想做的: 我在一列中有一个值列表。我希望VBA读取该列,然后根据我给定的条件将值输出到新列中。例如,如果A列中的值介于1和2之间,我希望b列中的值为6,如果值介于2和3之间,我希望b列中的值为20 谢谢 在B1中输入公式: =Test(A1) 然后复制到您需要的地方 该函数将执行以下功能 Function Test(v) Test = "Default" If v >= 1 And v <= 2 Then Test = 6 If v >= 3

以下是我想做的:

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


谢谢

在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
功能测试(v)
Test=“默认值”

如果B1中的v>=1、v=3和v,则使用以下公式:

=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
功能测试(v)
Test=“默认值”
如果v>=1,v=3,v尝试以下方法:

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
Dim r作为范围,i作为整数,N作为整数
N=20'值的数量
设置r=范围(“A2”)。调整大小(N,1)“A2位于列的左上角
Dim values()作为变量
values=r。Value“将所有值从工作表读取到数组
对于i=1到N
'逐步遍历这些值并根据规则进行转换
如果值(i,1)>=1,值(i,1)=2,值(i,1)尝试以下操作:

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
Dim r作为范围,i作为整数,N作为整数
N=20'值的数量
设置r=范围(“A2”)。调整大小(N,1)“A2位于列的左上角
Dim values()作为变量
values=r。Value“将所有值从工作表读取到数组
对于i=1到N
'逐步遍历这些值并根据规则进行转换

如果值(i,1)>=1,值(i,1)=2和值(i,1),你自己试过什么吗?你自己试过什么吗?