【问题标题】:Looping through range of cells of a particular colour using VBA in Excel在 Excel 中使用 VBA 循环遍历特定颜色的单元格范围
【发布时间】:2014-06-17 09:20:20
【问题描述】:

我正在寻找一个宏的帮助,该宏将遍历指定行 (8) 中的所有单元格。 然而,为了使事情复杂化,我只关心特定颜色(蓝色)的单元格,因为第 8 行中有很多单元格,但有些是绿色的。 为了使蓝色单元格子集的问题更加复杂,我只想突出显示包含文本“产品”、“计量单位”或“包装尺寸”和“新单价”的那些 一旦找到,我想突出显示这些单元格是标题的列。然后我想复制这些单元格并将它们粘贴到一个新的工作簿中。

似乎有几种方法可以做到这一点,我可以循环遍历第 8 行的所有单元格,条件为高亮列如果单元格包含指定的文本并且单元格为蓝色。然而,这似乎效率低下。 或者我可以遍历所有单元格并在到达绿色单元格后停止。这会给我蓝色单元格的范围。然后,我可以遍历突出显示标题包含指定文本的所有列的蓝色单元格范围。 我只是 VBA 的新手,对语法不太了解。我也很难找到有关循环遍历仅包含指定颜色的单元格的信息。 有谁知道这是怎么做到的?

干杯!

【问题讨论】:

    标签: excel vba


    【解决方案1】:
    Public Sub HighlightColumns(ByVal w As Worksheet)
      Dim c As Range
      Dim found As Range
    
      For Each c In Application.Intersect(w.Rows(8), w.UsedRange).Cells
        If c.Interior.Color = vbBlue Then
          Select Case c.Value
          Case "product", "UOM", "Pack size", "New Unit Price"
            If found Is Nothing Then Set found = c Else Set found = Application.Union(found, c)
          End Select
        End If
      Next
    
      If Not found Is Nothing Then found.EntireColumn.Select
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2018-01-09
      • 2018-05-11
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 2019-06-05
      • 1970-01-01
      相关资源
      最近更新 更多