2016-10-10 6 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

唯一の質問は次のとおりです。*これは可能ですか?*。その答えは「はい」です。それ以上の援助が必要な場合は、[How to Ask](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 - あなたが擬似コードと言っても、それは実際には擬似コードではなく、実際にはかなりかすかなコードなので。 –

+2

@ScottHoltzman、そのスタートですが、私は彼のためのコードを書いていません。私は前のコードから始めて、私は一緒に引っ張った。あなたが私よりも良い/清潔な答えを持っているなら。提出してください、これは単に「はい」と言っている以上のステップなので、共有してください。 –

関連する問題