Seseorang dapat memilih beberapa sel Excel (baik secara bersebelahan atau tidak) menggunakan pintasan keyboard Ctrl+ Klik.
Bagaimana Anda membatalkan pilihan satu atau beberapa sel yang sebelumnya dipilih ini?
Seseorang dapat memilih beberapa sel Excel (baik secara bersebelahan atau tidak) menggunakan pintasan keyboard Ctrl+ Klik.
Bagaimana Anda membatalkan pilihan satu atau beberapa sel yang sebelumnya dipilih ini?
Jawaban:
Dengan menggunakan SHIFT dan / atau tombol CTRL Anda dapat memilih rentang yang tidak berdekatan. Namun, jika Anda memilih sel atau area secara tidak sengaja, tidak ada cara untuk menghapusnya dari seleksi tanpa kehilangan seluruh pilihan dan harus memulai dari awal. Halaman ini menjelaskan prosedur VBA, UnSelectActiveCell, dan UnSelectCurrentArea yang akan menghapus Sel Aktif atau Area yang mengandung Sel Aktif dari pilihan saat ini. Semua sel lain dalam Seleksi akan tetap dipilih.
Taruhan terbaik Anda adalah menambahkannya ke buku kerja Makro Pribadi Anda sehingga tersedia untuk semua buku kerja terbuka di Excel.
Prosedur ini akan menghapus Sel Aktif dari Seleksi .
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
Prosedur ini akan menghapus Area yang mengandung Sel Aktif dari Seleksi.
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
cara sel. Benar-benar konyol! Saya memilih setiap kolom ke-2 dan jika saya membuat kesalahan, saya harus memulai dari awal? Itu gila!
Cara yang lebih kuat untuk membatalkan pilihan beberapa sel dijelaskan dalam artikel ExtendOffice ini . Itu memang termasuk prompt tambahan, tetapi Anda dapat membatalkan pilihan sel / pilihan yang sewenang-wenang sekaligus (bukan hanya memilih sel atau area aktif)
Saya memposting skrip di sini, dengan sedikit peningkatan kegunaan (dengan syarat menghapus prompt pertama yang redundan dari posting asli):
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
Untuk menggunakannya, Anda membuat pilihan, memohon DeselectCells
makro (yang terbaik yang akan disimpan dalam buku makro Pribadi dan ditugaskan untuk jalan pintas) dan pilih sel yang akan de dipilih dalam popup yang muncul:
UnSelectActiveCell
lebih cepat jika Anda menyatukan dengan rentang dan hanya loop melalui sel jikaNot Intersect(Area,ActiveCell) Is Nothing
. Mungkin tidak demikian halnya jikaIntersect
fungsinya jauh lebih lambat daripadaStrComp
fungsinya sehingga tidak bisa mengimbangi pengurangan panggilanUnion
.