EXCEL 多种选项条件对应多个结果 怎么用VBA解决?

例子如下图,在列A、B输入值后,能自动在列D、E上跳出结果,如何用vba解决?其中列c的比例值如下图一样固定三个值;
不会VBA,自己弄了一个if函数公式,但是数据多还是比较麻烦。所以跪求各位大神用代码解决~

首先打开excel,按alt+f11,打开vba编辑器,然后插入一个模块,模块内容如下,你照抄过去

Sub A()
Dim A#, B#, C#, D#, E#, F#, G#, H#, I#, M#, X#
Dim Hang As Long
For Hang = 2 To Range("a1").End(xlDown).Row Step 3
    A = Cells(Hang, 1): B = Cells(Hang, 2): C = Cells(Hang + 1, 2): Cells(Hang + 2, 2) = B + C
    D = Cells(Hang + 2, 2)
    E = Cells(Hang, 3): F = Cells(Hang + 1, 3): G = Cells(Hang + 2, 3)
    If A <= B Then
    Cells(Hang, 4) = A * E: Cells(Hang + 1, 4) = 0: Cells(Hang + 2, 4) = 0
    End If
    
    If A > B And A <= D Then
    Cells(Hang, 4) = B * E: Cells(Hang + 1, 4) = (A - B) * F: Cells(Hang + 2, 4) = 0
    End If
    
    If A > D Then
    Cells(Hang, 4) = B * E: Cells(Hang + 1, 4) = C * F: Cells(Hang + 2, 4) = (A - D) * G
    End If
    
    Cells(Hang, 5) = Cells(Hang, 4) + Cells(Hang + 1, 4) + Cells(Hang + 2, 4)
Next Hang
End Sub

追问

运行时错误‘13’:

类型不匹配

点击调试后显示

追答

不知道什么情况,你把dim a#改成dim a as double试一试,所有的变量都修改一下,我这里完全能运行的。如果是这样的话,那你第2行或者第2+3n行的内容就不是数值,而是文本之类的,所以当然就不匹配了,就会显示错误。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-16
没讲透,否则可以用人民币解决。
第2个回答  2018-10-21
写个Udf就解决了
第3个回答  2018-10-21
标记 明天研究
第4个回答  2018-10-16
不用函数?
相似回答