【问题标题】:Excel VBA Range Command Click Multiple CellsExcel VBA范围命令单击多个单元格
【发布时间】:2016-10-11 10:00:46
【问题描述】:

我正在尝试使用 VB 宏来理解范围函数,以便在工作中更轻松地进行报告。网上有很多关于这个的帮助,但它只适用于一个单元格。我希望此解决方案适用于堆叠在一列中的多个单元格。

我想使用命令按钮。

我将简化场景。如果单元格 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 中显示绿色、红色、黄色、红色、黄色?

我显然尝试编辑 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

显然遗漏了什么。我认为我使用的逻辑是错误的。

有人可以帮忙吗?

【问题讨论】:

    标签: excel vba


    【解决方案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
    

    它遍历范围,检查值,然后将一些文本放在值旁边的列中。应该足以让您入门。

    【讨论】:

      猜你喜欢
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多