1

我在 Excel 的 Visual Basic 中有这段代码。我尝试不使用 a、b 和 c,只使用 Range("C2")、F2、G2,但它也不起作用。我真的不知道为什么这不起作用,有人可以帮助我吗?:)

Sub pourcentremiseport()
Dim a As Integer
Dim b As Integer
Dim c As Integer

a = Range("C2").Value

If a < 6 Then
 b = 9.6
 c = 0 

ElseIf a >= 6 And a < 20 Then
 b = 0
 c = 10

Else
 b = 0
 c = 25

 End If

 b = Range("F2").Value
 c = Range("G2").Value

End Sub
4

2 回答 2

0

最后两行应该是:

 Range("F2").Value = b
 Range("G2").Value = c

VBA 中的一般规则是=符号设置左侧对象等于右侧对象。

编辑

如果没有关于“为什么”宏不起作用的更多信息,就很难排除故障。

您是否知道您可以在 excel 公式中使用 It/Then 逻辑?

对于单元格 F2,您可以使用:=IF(C2<6, 9.6,IF(C2<20,0,0))

单元格 G2 可能是:=IF(C2<6, 0,IF(C2<20,10,25))

于 2012-10-21T13:49:50.180 回答
0

你可以用公式解决这个问题:

单元格 F2:

=IF(C2<6,9.6,IF(AND(C2>=6,C2<20),0,0))

单元格 G2:

=IF(C2<6,0,IF(AND(C2>=6,C2<20),0.1,0.25))

使用公式处理错误比使用 VBA 更容易;少写代码:)

于 2012-10-21T14:53:09.710 回答