繁体   English   中英

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

[英]Looping through range of cells of a particular colour using VBA in Excel

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

似乎有几种方法可以执行此操作,我可以在第8行的所有单元格中进行循环,条件是突出显示列。如果单元格包含指定的文本并且单元格为蓝色。 但是,这似乎效率很低。 或者,我可以遍历所有单元格,并在达到绿色单元格后停止。 这将为我提供蓝色单元格的范围。 然后,我可以遍历蓝色单元格的范围,突出显示标题包含指定文本的所有列。 我只是VBA的新手,并不十分了解语法。 我也很难找到有关循环通过仅包含指定颜色的单元的信息。 有人知道该怎么做吗?

干杯!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM