例を検索し、さまざまなコードを試しましたが、機能しません。 同じブック(2つは「PASTfromFeb2017」と呼ばれるもの)で2枚を通過するマクロを作成したいと思います。各シートで、値が配列にリストされているものと等しいかどうかチェックしたいと思います。値が等しい場合は、セル全体が色で塗りつぶされます(例:赤)。Excel VBAカラーセルの値が配列の値と等しい場合
Option Explicit
Sub colorCell()
Application.ScreenUpdating = False
Dim wbk As Workbook
Dim SubmissionWkst As Worksheet
Dim PASTfromFeb2017Wkst As Worksheet
Dim lastRow As Long
Dim lRow As Long
Dim sheetName As String
Dim arrSht() As Variant
Dim cell As Range
Dim k As Long
Dim i As Integer
arrSht = Array("MK-3475", "MK-8415", "MK-0431", "MK-0517", "MK-8931", "MK-8835", "V-501", "V-503", "V-110", "MK-4305", "V-211", "MK-5172")
For k = LBound(arrSht) To UBound(arrSht)
ThisWorkbook.Worksheets("Submission").Activate
With ActiveSheet
For lRow = 2 To lastRow
If Cells(lRow, "C").Value Like arrSht.Value Then
Cells(lRow, "C").Interior.ColorIndex = 3
End If
Next i
End With
Next k
For k = LBound(arrSht) To UBound(arrSht)
ThisWorkbook.Worksheets("PASTfromFeb2017").Activate
With ActiveSheet
For lRow = 2 To lastRow
If Cells(lRow, "C").Value Like arrSht.Value Then
Range(Cells(lRow, "C"), Cells(lRow, "C")).Interior.ColorIndex = 3
End If
Next i
End With
Next k
Application.ScreenUpdating = True
End Sub
なぜあなたは 'Like'ではなく、' = 'を使用していますか?細胞には、例えば「MK-3475」以上のものが含まれていますか? –
私は=試しましたが、動作しません。私はVBAで非常に新しいです。 –
最初に、「For lRow」は、両方の機会に「Next i」によって閉鎖されているように見えました。それを修正してください。また、ActiveSheetは動作する必要がありますが、通常は不要であり、EXPLICITシート参照によって効果がより良く得られます。また、同時に両方を行うことができます – MacroMarc