답변1
테이블 자동 필터링을 활성화합니다.
상태 열에 대한 조건부 서식을 설정하고 기분 좋은 배경색으로 높은 값을 표시합니다.
워크시트 모듈에 아래 코드를 삽입합니다. 필요에 따라 코드의 열 번호, 헤더 셀 주소 및 배경색 값을 편집합니다.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then With AutoFilter.Sort .SortFields.Clear .SortFields.Add(Range("B1"), xlSortOnCellColor, xlAscending, , xlSortTextAsNumbers).SortOnValue.Color = RGB(242, 242, 242) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End If End Sub
이제 B열을 변경할 때마다 데이터 테이블의 순서가 변경됩니다.
추신. 최종 행 순서와 변경된 행의 위치는 예측할 수 없습니다. 더 자세한 정렬 기준을 설정하여 최종 순서를 세분화할 수 있습니다.
조달청. 물론 조건부 서식을 사용하지 않고 직접 값을 기준으로 정렬할 수도 있습니다. 따라서 이 게시물을 솔루션이 아닌 샘플로 사용하세요.
답변2
VBA(매크로) 세트를 제안하고 싶습니다. 행 정렬에 도움이 될 것입니다.높은오름차순으로 그 다음에는 배경색을 채웁니다.
정렬 전:
정렬된 후:
- 누르거나Alt+F11또는마우스 오른쪽 버튼으로 클릭그만큼시트 탭VB 편집기를 엽니다.
이 VBA 코드를 표준 모듈로 복사하여 붙여넣으세요.
Sub SortDataWithoutHeader() Range("Test12A.xlsm!Newdata1").Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlYes Call Highlight End Sub
Sub Highlight()
Dim LastRow As Long, c As Range
Dim MyRange As Range
LastRow = Cells(Cells.Rows.Count, "C").End(xlUp).Row
Set MyRange = Range("C2:C" & LastRow)
For Each c In MyRange
If c.Value = "High" Then
c.EntireRow.Interior.Color = vbGreen
Else
c.EntireRow.Interior.Color = xlNone
End If
Next
End Sub
주의
- 이 줄에서
Range("Test12A.xlsm!Newdata1")
,새로운 데이터1은명명된 범위, 편집을 방지합니다정렬 범위새로운 행이 입력될 때마다. Interior.Color = vbGreen
,vb녹색편집 가능합니다.
편집됨:
이 코드는 모든 새 항목에 대해 데이터 세트를 자동으로 정렬 및 구성하며 강조 표시 셀에만 텍스트가 있습니다.높은.
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("C:C")) Is Nothing Then
Range("C1").Sort Key1:=Range("C2"), _
Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom
Call Highlight
Application.EnableEvents = False
End If
End Sub
Sub Highlight()
Dim cell As Range
For Each cell In Range("C:C")
If cell.Value = "High" Then
cell.Interior.Color = XlRgbColor.rgbLightGreen
Else
cell.Interior.Color = xlNone
End If
Next cell
End Sub
필요에 따라 VBA 코드의 셀 참조를 조정합니다.
답변3
Sortby() 함수를 사용해 보세요. 너무 쉽게 작동했습니다. 나 같은 사람(초보 Excel 사용자)에게 VBA 코드는 매우 어려운 작업이었습니다.