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

これを数式で解決できます。

セル 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 に答える
0

最後の 2 行は次のようになっています。

 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 に答える