2016-10-11 144 views
0

我想了解與VB宏的範圍函數,使報告工作更輕鬆。網上有大量的幫助,但它只適用於一個單元格。我希望此解決方案可以用於列中堆疊的多個單元格。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 

這一切都適用於我的單細胞(A1)的罰款。

但是如果我想要做多個單元呢?假設我已經獲得了單元格A1:A5,其中包含1,3,2,3,2

如何讓它們在B1:B5中顯示綠色,紅色,黃色,紅色,黃色?

我顯然嘗試編輯範圍(「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 

它走下範圍,然後檢查的價值提出一些文本列旁邊的值。它應該足以讓你開始。

相關問題