我正在寻找一个宏的帮助,它将遍历指定行中的所有单元格(8)。 然而,为了使问题复杂化,我只关注特定颜色(蓝色)的细胞,因为第8行中有许多细胞但有些细胞是绿色的。 为了使蓝色单元格子集更进一步复杂化,我只想强调那些包含文本“product”,“UOM”或“Pack size”和“New Unit Price”的单元格。 一旦找到,我想突出显示这些单元格的标题。然后我想复制这些单元格并将它们粘贴到一个新的工作簿中。
似乎有几种方法可以做到这一点,我可以循环遍历第8行的所有单元格,条件是高亮列。如果单元格包含指定的文本,则单元格为蓝色。然而,这似乎效率低下。 或者我可以遍历所有细胞并在达到绿色细胞后停止。这会给我一系列蓝色细胞。然后我可以循环遍历蓝色单元格范围,突出显示标题包含指定文本的所有列。 我只是VBA的新手,并不太了解语法。我也很难找到循环通过只包含指定颜色的单元格的信息。 任何人都知道如何做到这一点?
干杯!
答案 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