使用Excel中的VBA循环遍历特定颜色的单元格范围

时间:2014-06-17 09:20:21

标签: excel vba

我正在寻找一个宏的帮助,它将遍历指定行中的所有单元格(8)。 然而,为了使问题复杂化,我只关注特定颜色(蓝色)的细胞,因为第8行中有许多细胞但有些细胞是绿色的。 为了使蓝色单元格子集更进一步复杂化,我只想强调那些包含文本“product”,“UOM”或“Pack size”和“New Unit Price”的单元格。 一旦找到,我想突出显示这些单元格的标题。然后我想复制这些单元格并将它们粘贴到一个新的工作簿中。

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

干杯!

1 个答案:

答案 0 :(得分:0)

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