답변:
SHIFT 및 / 또는 CTRL 키를 사용하여 비 연속 범위를 선택할 수 있습니다. 그러나 실수로 셀이나 영역을 선택하면 전체 선택을 잃고 다시 시작하지 않고 선택에서 셀이나 영역을 제거 할 수있는 방법이 없습니다. 이 페이지 에서는 현재 셀렉션에서 활성 셀 또는 활성 셀이 포함 된 영역을 제거하는 VBA 절차 인 UnSelectActiveCell 및 UnSelectCurrentArea에 대해 설명합니다. 선택의 다른 모든 셀은 선택된 상태로 유지됩니다.
가장 좋은 방법은 Excel에서 열려있는 모든 통합 문서에 사용할 수 있도록 개인용 매크로 통합 문서에 추가하는 것입니다.
이 절차는 선택에서 활성 셀을 제거합니다 .
Sub UnSelectActiveCell()
Dim R As Range
Dim RR As Range
For Each R In Selection.Cells
If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then
If RR Is Nothing Then
Set RR = R
Else
Set RR = Application.Union(RR, R)
End If
End If
Next R
If Not RR Is Nothing Then
RR.Select
End If
End Sub
이 절차는 선택에서 활성 셀을 포함하는 영역을 제거합니다.
Sub UnSelectCurrentArea()
Dim Area As Range
Dim RR As Range
For Each Area In Selection.Areas
If Application.Intersect(Area, ActiveCell) Is Nothing Then
If RR Is Nothing Then
Set RR = Area
Else
Set RR = Application.Union(RR, Area)
End If
End If
Next Area
If Not RR Is Nothing Then
RR.Select
End If
End Sub
deselect
세포에 방법을 찾을 수 없습니다 . 정말 말도 안돼! 두 번째 열마다 선택하고 실수 한 경우 다시 시작해야합니까? % & * ing 미친 것입니다!
여러 셀의 선택을 해제하는보다 강력한 방법 은이 ExtendOffice 기사에 설명되어 있습니다. 추가 프롬프트가 포함되어 있지만 활성 셀 또는 영역 만 선택 취소하는 대신 임의의 수의 셀 / 선택을 한 번에 선택 취소 할 수 있습니다.
약간의 유용성 향상으로 스크립트를 게시하고 있습니다 (원래 게시물에서 중복 된 첫 번째 프롬프트를 조건부로 제거했습니다).
Sub DeselectCells()
Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim result As Range
xTitleId = "Deselect Cells"
Set InputRng = Application.Selection
If InputRng.Count <= 1 Then
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
End If
Set DeleteRng = Application.InputBox("Delete Range", xTitleId, Type:=8)
For Each rng In InputRng
If Application.Intersect(rng, DeleteRng) Is Nothing Then
If result Is Nothing Then
Set result = rng
Else
Set result = Application.Union(result, rng)
End If
End If
Next
result.Select
End Sub
, 당신은 호출 선택을 사용하기 위해 DeselectCells
(개인 매크로 책에 저장하고 바로 가기에 할당하는 것이 가장 좋습니다) 매크로 셀을 선택합니다 드 팝업으로 나타납니다 선택 :
UnSelectActiveCell
범위별로 통합하고 경우에만 셀을 반복하면 더 빨리 만들 수 있는지 궁금 합니다Not Intersect(Area,ActiveCell) Is Nothing
. 경우 케이스되지 않을 수도 있습니다Intersect
기능은 훨씬 느린보다StrComp
기능이 호출의 감소를 상쇄 할 수 없습니다Union
.