컨텐츠에 따라 자동으로 색상을 설정하는 EXCEL VBA 스크립트

2612 단어 스크립트ExcelVBA
동료를 돕는 간단한 매크로, 처음으로 VBA를 사용하고, 기록하고, 나중에 하면 참고할 수 있다
 
두 번째 페이지의 사용자 유지 관리 데이터에 따라 첫 번째 페이지의 해당 디스플레이 영역의 색을 자동으로 업데이트하여 보기 쉽도록 합니다
 
이것은 수동으로 운행하는 것으로 기존 데이터를 처리하는 데 쓰인다
Sub ChangeColumnsRGB()
        Dim i As Integer
        Dim row As Integer
        Dim column As Integer

    For i = 3 To Sheet2.UsedRange.Rows.Count
   
        finalResult = Sheet2.Cells(i, 11).Value
        row = (i - 3) \ 4 + 2
        column = (i - 3) Mod 4 + 1 + 2  

        If finalResult = "ok" Then
            Sheet1.Cells(row, column).Interior.color = RGB(51, 153, 102)
        End If

        If finalResult = "Need artwork" Then
            Sheet1.Cells(row, column).Interior.color = RGB(153, 204, 0)
        End If

        If finalResult = "test ongoing" Then
            Sheet1.Cells(row, column).Interior.color = RGB(153, 51, 0)
        End If

        If finalResult = "Samples ongoing" Then
            Sheet1.Cells(row, column).Interior.color = RGB(0, 128, 0)
        End If

    Next i
End Sub

 
이것은 사용자 입력 조작에 의해 촉발된 것으로 자동 처리된다
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.column = 11 Then
    
        Dim operator As String
        Dim color As String
        Dim partName As String
        Dim finalResult As String
        
        operator = Cells(Target.row, 1).Value
        color = Cells(Target.row, 2).Value
        partName = Cells(Target.row, 3).Value
        finalResult = Target.Value
        
        Dim row As Integer
        Dim column As Integer
        row = (Target.row - 3) \ 4 + 2
        column = (Target.row - 3) Mod 4 + 1 + 2
        
        If finalResult = "ok" Then
            Sheet1.Cells(row, column).Interior.color = RGB(51, 153, 102)
        End If
        If finalResult = "Need artwork" Then
            Sheet1.Cells(row, column).Interior.color = RGB(153, 204, 0)
        End If
        If finalResult = "test ongoing" Then
            Sheet1.Cells(row, column).Interior.color = RGB(153, 51, 0)
        End If
        If finalResult = "Samples ongoing" Then
            Sheet1.Cells(row, column).Interior.color = RGB(0, 128, 0)
        End If
        
    End If
    
End Sub
 

좋은 웹페이지 즐겨찾기