배경/텍스트 색상이 다른 셀 배경 또는 텍스트 색상을 따르도록 합니다.

배경/텍스트 색상이 다른 셀 배경 또는 텍스트 색상을 따르도록 합니다.

좋아요, 저는 큰 스프레드시트를 가지고 있고(각 셀 색상을 개별적으로 또는 수동으로 설정할 필요가 없기 때문에) 다른 셀을 복사하는 셀이 많습니다. 예를 들어 셀 N9, N 3, N80, N117 등이 =IF(N$931="","",N$931)이므로 N931에 항목이 있으면 N9와 co에 복사되고, 그렇지 않으면 다음과 같습니다. 공백. N931에 설정한 배경색을 자동으로 N9와 동일한 배경색으로 만드는 기능을 갖고 싶습니다. 어떻게 해야 하나요?

건배! 존

답변1

조건부 서식이나 다른 프런트 엔드 기술을 사용하여 다른 셀의 색상을 기반으로 셀 색상을 설정할 수 없으므로 VBA를 사용해야 합니다.

색상이 있는 데이터가 행 N에 있고 행 500에서 시작한다고 가정합니다. 또한 복사할 첫 번째 셀이 N1이고 =if(N500="", "", N500). 또한 해당 수식을 N499에 복사한다고 가정합니다. VBA는 다음과 같습니다.

Sub copyValuesAndFormats()
    Dim intRow As Integer
    Dim rngCopy As Range
    Dim rngPaste As Range


    'Loop from Rows 1 through 499
    For intRow = 1 To 499

        'Set the copy and paste range
        'CHANGE THE SHEET TO MATCH YOURS
        Set rngCopy = Sheet3.Range("N" & intRow + 499)
        Set rngPaste = Sheet3.Range("N" & intRow)

        'Test to see if rows 500+ have a value
        If rngCopy.Value <> "" Then

            'Since it has a value, copy the value and color
            rngPaste.Value = rngCopy.Value
            rngPaste.Interior.Color = rngCopy.Interior.Color

            'If you wish to copy the color of the font as well, uncomment the next line
            'rngPaste.Font.Color = rngCopy.Font.Color
        End If
    Next intRow
End sub

이를 사용하면 N1:N499에 수식이 필요하지 않습니다. 어쨌든 이 코드로 인해 폭발할 것입니다.

관련 정보