特定の行が完了したことを示すハイライト表示処理を自動化しようとしています。このプロセスはうまくいきますが、私のシートの冒頭では、シートの色の異なる意味を示すためのコードを「キー」にするようにしています。キーでは、白、緑、赤の色は、未完了(白)、完了(緑)、エラー/不完全(赤)のラベルとして使用されます。グレーはプライベートパイプにも使用されます。私は対応するラベルを色で塗りつぶそうとしています、緑は緑、赤は赤などです。これは最初の行で動作するコードを作成しましたが、緑では "緑"セルが緑色になりませんそれは白を残す)、そして "赤"上ではセルを緑色に着色する。セルの色を設定したExcel 2010 VBA
Sub SmartHighlight()
Dim Counter As Integer
Dim i As Integer
Dim j As Integer
Dim k As Range
Dim Chkr As Integer
Chkr = 0
xTitleId = "Smart Highlighter"
MsgBox "This macro analyzes the given pipe data to highlight completed sections."
For Each k In ActiveSheet.UsedRange.Rows
Counter = 0
i = 8
For j = 0 To 3
If ActiveSheet.Cells(k.Row, i).Value = 0 Then
Counter = Counter + 1
End If
i = i + 1
Next j
If ActiveSheet.Cells(k.Row, 1) = "PIPE_ID" Then
ActiveSheet.Cells(k.Row, 15).Value = "KEY:"
ActiveSheet.Cells(k.Row, 16).Value = "White"
ActiveSheet.Cells(k.Row, 17).Value = "Not yet completed."
ActiveSheet.Cells(k.Row, 18).Value = "Grey"
k.Cells(k.Row, 18).Interior.ColorIndex = 15
ActiveSheet.Cells(k.Row, 19).Value = "Private."
ElseIf ActiveSheet.Cells(k.Row, 1) = "" And Chkr = 0 Then
ActiveSheet.Cells(k.Row, 16).Value = "Green"
k.Cells(k.Row, 16).Interior.ColorIndex = 4
ActiveSheet.Cells(k.Row, 17).Value = "Completed."
Chkr = Chkr + 1
ElseIf ActiveSheet.Cells(k.Row, 1) = "" And Chkr = 1 Then
ActiveSheet.Cells(k.Row, 16).Value = "Red"
k.Cells(k.Row, 16).Interior.ColorIndex = 3
ActiveSheet.Cells(k.Row, 17).Value = "Error/Incomplete."
ElseIf ActiveSheet.Cells(k.Row, 4) = "PRIVATE PIPE" Then
k.EntireRow.Interior.ColorIndex = 15
ElseIf Counter <> 4 Then
k.EntireRow.Interior.ColorIndex = 4
ElseIf Counter = 4 And ActiveSheet.Cells(k.Row, 14) = "" Then
k.EntireRow.Interior.ColorIndex = 3
End If
Next k
End Sub
そして、ここでは、Excelで出力されます: Click for Image
誰も私には着色を修正することができた場合はここで私は(私はコーディングに新しいですと、それは悪い謝罪)を使用していたコードですエラーが最も高く評価されます。ありがとう!
*このアプリケーションでは条件付き書式設定*が簡単かもしれません... –
応答ありがとうございました!Trauger!私は残念なことに、他のシートでこのマクロを再利用しようとしています。なぜVBAで書くのですか?私が知っていることから、条件付き書式を他のすべてのシート(それはかなり多くあります)に自動的に引き継ぐ方法はありません。最終的に私はリボンバーにこのマクロをリンクしようとしていますので、一度クリックして次へ進むことができます。 – dashton