VBA를 사용하지 않고 Excel에서 활성 행/열을 강조 표시하시겠습니까?
제가 달성하고자 하는 것은 활성 행 또는 열을 강조 표시하는 것입니다. VBA 솔루션을 사용했습니다.Selection_change
이벤트가 사용되었습니다. 워크시트의 변경 내용을 취소할 기회를 잃고 있습니다.
VBA를 사용하지 않고 활성 행/열을 강조 표시할 수 있는 방법이 있습니까?
조건부 서식을 사용하는 것이 가장 좋습니다.
두 개의 공식 기반 규칙을 만듭니다.
=ROW()=CELL("row")
=COLUMN()=CELL("col")
에 표시된 대로:
유일한 단점은 셀을 선택할 때마다 시트를 다시 계산해야 한다는 것입니다("F9"를 누를 수 있습니다).
행을 표시할 수 .Shift+Space
에 현사(열)이 있음Ctrl+Space
.
Excel, Google Sheets, OpenOffice Calc 및 Gnumeric(내가 시도한 모든 프로그램)에서 작동하는 것 같습니다.(https://productforums.google.com/forum/ #!topic/docs/gJh1rLU9IRA에서 이 점을 지적해 주셔서 감사합니다.)
안타깝게도 공식 및 매크로 기반 솔루션(나에게 효과가 있었던 BTW)만큼 좋지는 않습니다. 커서를 이동하면 강조 표시가 사라지지만 매번 설정하거나 템플릿을 만들 필요가 없기 때문입니다(작업할 수 없었습니다).
또한 다른 솔루션의 조건부 형식 지정 공식(Excel의 경우)을 단일 규칙에 대한 단일 공식으로 단순화할 수 있습니다.
=OR(CELL("col")=COLUMN(),CELL("row")=ROW())
이런 식으로 하면 강조 표시된 열과 행이 동일한 형식을 사용해야 하지만 대부분의 경우에는 이 형식이 적절하고 작업량이 적습니다.(간단한 공식은 https://trumpexcel.com/highlight-active-row-column-excel/ 덕분입니다.)
VBA를 사용하지 않고는 수행할 수 없다고 생각하지만 실행 취소 기록을 잃지 않고 수행할 수 있습니다.
VBA에서 워크시트 개체에 다음을 추가합니다.
Public SelectedRow as Integer
Public SelectedCol as Integer
Private Sub Worksheet_SelectionChange(ByVal Target as Range)
SelectedRow = Target.Row
SelectedCol = Target.Column
Application.CalculateFull ''// this forces all formulas to update
End Sub
새 VBA 모듈을 생성하고 다음을 추가합니다.
Public function HighlightSelection(ByVal Target as Range) as Boolean
HighlightSelection = (Target.Row = Sheet1.SelectedRow) Or _
(Target.Column = Sheet1.SelectedCol)
End Function
마지막으로 조건부 형식을 사용하여 '선택 강조' 공식에 따라 셀을 강조 표시합니다.
우선 감사합니다!Selection_Change를 사용하고 셀 내용을 변경하여 셀을 강조 표시하는 솔루션을 방금 만들었습니다.실행 취소가 비활성화될 줄은 몰랐습니다.조건부 포맷인 Cell()과 Selection_Change 이벤트를 결합하여 사용하는 방법을 찾았습니다.이렇게 했어요.
- 셀 A1에서 저는 공식 = 셀("행")을 넣었습니다.
- 2행이 완전히 비어 있습니다.
- 3행에는 머리글이 포함되어 있습니다.
- 4열 아래가 데이터입니다.
- A1의 공식을 업데이트하려면 시트를 다시 계산해야 합니다.F9로 할 수는 있지만, 실행할 코드는 다음과 같은 것으로 Selection_Change 이벤트를 만들었습니다.이렇게 하면 사용자가 이동할 때마다 수행되며 Selection_Change(선택_변경)가 시트의 값/형식 등을 변경하지 않으므로 Undo(실행 취소)가 비활성화되지 않습니다.
- 이제 조건부 형식을 입력하여 셀 A1과 동일한 행을 가진 셀을 강조 표시합니다.
- 전체 열 B 선택
- 조건부 형식 지정, 규칙 관리, 새 규칙, 수식을 사용하여 형식 지정할 셀 결정
- 다음 공식 입력: =행(B1)=$A$1
- 형식을 클릭하고 강조 표시할 방법을 선택합니다.
- 준비. 팝업에서 확인을 누릅니다.
이것은 나에게 효과가 있습니다.
의 Range.Calculate
중입니다.ActiveWindow.SmallScroll
유일한 단점은 새로 선택한 후 화면이 몇 초 동안 깜박거린다는 것입니다.수동으로 스크롤하는 동안 새 선택 항목이 화면(창) 밖으로 완전히 이동해야 작동합니다.따라서 아래 코드에서는 화면 보기에서 보이는 모든 행을 제거할 수 있을 만큼 스크롤한 다음 같은 위치로 다시 스크롤하여 조건부 형식의 화면 새로 고침을 수행해야 합니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ScreenUpdating = False
ActiveWindow.SmallScroll Down:=150 'change these values to total rows displayed on screen
ActiveWindow.SmallScroll Down:=-150 'change these values to total rows displayed on screen
'DoEvents 'unable to use this to remove the screen flicker
ScreenUpdating = True
End Sub
학점:로리 아치볼드 https://www.experts-exchange.com/questions/28275889/When-is-excel-conditional-formatting-refreshed.html
조건부 형식을 사용하면 전체 행과 열을 강조 표시하는 대신 아래 코드로 셀 왼쪽의 행과 셀 위의 열을 강조 표시할 수 있습니다.
=OR(AND(CELL("col")=COLUMN();(CELL("row")-1)>=ROW());AND(CELL("col")>=COLUMN();(CELL("row")-1)=ROW()))
Selection_change 이벤트 시트에서 다음을 호출합니다.
Function highlight_Row(rngTarget As Range)
Dim strRangeRow As String
strRangeRow = rngTarget.Row
strRangeRow = strRangeRow & ":" & strRangeRow
Rows(strRangeRow).Select
rngTarget.Activate
End Function
이것은 명확성을 위한 긴 형식입니다.
또한 (F9 대신) 새로 고침 시트에 이 코드를 vba에 추가합니다.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = False Then
Application.Calculate
End If
End Sub
활성 열과 행을 강조 표시하려면 클릭할 때까지 셀을 색칠하지 않고 전체 열과 행을 색칠하지 않고 Excel에서 조건부 형식의 공식을 사용합니다.
=OR(AND(CELL("col")=COLUMN(),(CELL("row")-1)>=ROW()),AND(CELL("row")=ROW(),(CELL("col")-1)>=COLUMN()))
(포맷할) 숫자를 다른 열의 자체의 소계로 나누면 숨겨진 항목에 오류가 발생하고 등급이 지정된 색상 척도로 런타임 조건부 서식을 지정할 수 있습니다.
언급URL : https://stackoverflow.com/questions/22349424/highlight-active-row-column-in-excel-without-using-vba
'programing' 카테고리의 다른 글
RichTextBox에서 텍스트 내용을 지우는 방법 (0) | 2023.05.16 |
---|---|
Azure 스토리지 에뮬레이터가 설치되지 않음 (0) | 2023.05.16 |
"pip 설치"와 "python-m pip 설치"의 차이점은 무엇입니까? (0) | 2023.05.16 |
응용 프로그램의 다른 인스턴스가 실행 중인지 확인하는 방법 (0) | 2023.05.16 |
도커 컨테이너에 호스트 디렉토리를 마운트하는 방법 (0) | 2023.05.16 |