2016-10-10 30 views
0

此过程正在用于QC目的。我有一个电子表格,根据它们的值和我们已有的验证规则,突出显示某些错误的单元格。我想知道是否有一种方法可以返回每列中着色到A列的每个单元格的列名称?例如,如果D2,F2和G2错误,它会将所有这些列标题置于A2中,以指明究竟是什么错误。我知道尝试使用单元格颜色自动化东西会变得稍微复杂一点,而我在VBA中并没有经验,我认为这将需要。这有可能做到,如果是这样的话,那么正确的路线是什么?数据从列A到列BS运行,并且行数可能不同,所以如果它可以运行到1,000行将会很好。附加的是我正在使用的数据。返回有色单元格的列标题

The red means something is wrong in that row, and the orange cell is the color indicating that it is a wrong value

+1

你问的唯一问题是:*这是可能的吗?*。答案是肯定的。如果你想获得更多的帮助,请阅读[如何提问](http://stackoverflow.com/help/how-to-ask),并用更清晰,简洁和代码编辑你的问题。 –

+0

为什么不把重点放在值和验证规则上而不是颜色本身上?定位逻辑比色彩更容易。通过专注于逻辑,你可能根本不需要VBA。 –

+0

我认为这会更容易脱离细胞的颜色,因为根据其他值可能会接受不同的值。所以我认为,通过各种组合,更容易脱离细胞的颜色。 – elagarde

回答

0

是的,这是可以做到的。以下是一些代码片段,我将它们放在一起帮助您开始。

Lastrow = Cells(Rows.count, "A").End(xlUp).Row 'Get last row 
With ActiveSheet 
Lastcol = .Cells(1, .Columns.count).End(xlToLeft).Column 'Get last col 
End With 

For x = 1 To Lastcol 'Iterate Col  
     For i = 1 To Lastrow 'Iterate Row 
      'if red.... 
      If Cells(i, x).Selection.Interior.Color = 255 then 
       'Move name to Cell A and append off of old name(s). 
       Cells(i, "A") = Cells(i, "A") & ", " & Cells(i, x) 
      End If  
     Next i 'next row 
    Next x 'next col 
+0

dv - 因为即使你说psuedo-code,它实际上并不是psuedo-code,但实际上很潦草的代码。 –

+2

@ScottHoltzman,它的一个开始,我不会为他写代码。它是从我以前的代码拉到一起的开始。如果你有比我的更好/更清洁的答案。请提交并分享,因为这只是告诉他“是”而已。 – 2016-10-10 20:22:44

相关问题