2016-10-11 11 views
0

VBマクロを使用して範囲関数を理解して、レポート作成をより簡単にしたいと考えています。これに関するオンラインヘルプがたくさんありますが、それは1つのセルでのみ機能します。このソリューションは、複数のセルを1つの列に積み重ねて動作させたいと考えています。Excel VBA範囲コマンド複数のセルをクリックします。

コマンドボタンを使用します。

シナリオを簡略化します。セルA1 = "1"の場合、B2は "グリーン"と表示されます。 「2」なら「黄」、「3」なら「赤」。

Private Sub CommandButton1_Click() 

Dim TrafficCode As Integer, TrafficSignal As String 
TrafficCode = Range("A1").Value 

If TrafficCode = 1 Then TrafficSignal = "Green" Else 
If TrafficCode = 2 Then TrafficSignal = "Yellow" Else 
If TrafficCode = 3 Then TrafficSignal = "Red" 

Range("B1").Value = SA3 

End Sub 

これはすべて、1つのセル(A1)のために私にとってはうまく機能します。

しかし、複数のセルを処理したい場合はどうすればよいですか?のは、私はセルにA1を持っているとしましょう:B5:1とA5、3、2、3、2

は、どのように私は彼らが緑、赤、黄、赤、B1でイエローを表示するのですか?

私は明らかにRange( "A1:A5")などを編集しようとしましたが、エラーが発生します。

以下の私のために動作しません。

Private Sub CommandButton1_Click() 

Dim TrafficCode As Integer, TrafficSignal As String 
TrafficCode = Range("A1:A5").Value 

If TrafficCode = 1 Then TrafficSignal = "Green" Else 
If TrafficCode = 2 Then TrafficSignal = "Yellow" Else 
If TrafficCode = 3 Then TrafficSignal = "Red" 

Range("B1:B5").Value = SA3 

End Sub 

明らかに欠けているもの。私が使っているロジックは間違っていると思います。

誰でも手助けできますか?

答えて

1

はこれを見ている:

Sub Traffic_Light() 

Dim myRange As String 
Dim rCell As Range 

myRange = "A1:A5" 

For Each rCell In Range(myRange).Cells 

Select Case rCell.Value 

Case Is = 1 
    rCell.Offset(0, 1) = "Green" 
Case Is = 2 
    rCell.Offset(0, 1) = "Amber" 
Case Is = 3 
    rCell.Offset(0, 1) = "Red" 
Case Else 

End Select 

Next rCell 

End Sub 

それは範囲を歩く、値は、次の値に列にいくつかのテキストを置くチェックします。それはあなたを始めさせるのに十分であるはずです。

関連する問題