
좋아요, 저는 큰 스프레드시트를 가지고 있고(각 셀 색상을 개별적으로 또는 수동으로 설정할 필요가 없기 때문에) 다른 셀을 복사하는 셀이 많습니다. 예를 들어 셀 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에 수식이 필요하지 않습니다. 어쨌든 이 코드로 인해 폭발할 것입니다.