2017-10-11 11 views
0

次のコードは、アクティブなセルとそのオフセットに配列の内容がv(v1(i))であることを示しています。私は上場前に条件を入れたい。リストの前にv1配列内のすべての値の合計をチェックし、合計が>=5<=10の場合は、それをリストします。どうすればこれを達成できますか?配列の内容の合計を計算し、条件に基づいてリストします

v1 = Split(Replace(Trim(s), "'", ""), " ") 
For i = LBound(v1) To UBound(v1) 
    ActiveCell.Offset(0, i) = v(v1(i)) 
Next 

おかげ

答えて

1

これは、あなたが欲しいものを行う必要があります。

v1 = Split(Replace(Trim(s), "'", ""), " ") 
For i = LBound(v1) To UBound(v1) 
    t = t + Val(v1(i)) 
Next i 
If t >= 5 And t <= 10 Then 
    For i = LBound(v1) To UBound(v1) 
     ActiveCell.Offset(0, i) = v(v1(i)) 
    Next i 
End If 
+0

ループのループを2回行う代わりに、1つのコマンドで配列の合計を確認する方法はありますか?私は 'application.worksheetfuntions.sum'を試していましたが、v(v1())のすべての値の合計を得ることができませんでした。 – Sabha

+1

いいえすべての値をループする必要があります。合計を計算する前に最初の値を書き始めることはできません。 'Split'関数は、数値の処理には最適ではない文字列の配列を返しますが、CSVファイルのデータの起源のために文字列が詰まっていると思います。 – Variatus

+1

v1をバリアントにすることができれば、1つのコマンドで2番目のループを回避し、1番目のループは避けることができます。 – Variatus

関連する問題