首先打开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’:
类型不匹配
点击调试后显示
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/503d269759ee3d6d5597958f4e166d224f4ade24?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
追答不知道什么情况,你把dim a#改成dim a as double试一试,所有的变量都修改一下,我这里完全能运行的。如果是这样的话,那你第2行或者第2+3n行的内容就不是数值,而是文本之类的,所以当然就不匹配了,就会显示错误。