Excel'de bir grup onay kutusunda seçilecek yalnızca bir onay kutusu nasıl yapılır?
Aşağıdaki ekran görüntüsünde gösterildiği gibi, 2. satırda listelenen bir grup onay kutusu için, yalnızca bir onay kutusu seçildiğinde veya işaretlendiğinde, diğer onay kutuları devre dışı bırakılacaktır. Nasıl başarılır? Bu makaledeki VBA kodu size yardımcı olabilir.
VBA kodu ile seçilecek yalnızca bir onay kutusu yapın
VBA kodu ile seçilecek yalnızca bir onay kutusu yapın
Her seferinde bir onay kutusu grubunda yalnızca bir onay kutusu seçmek için aşağıdaki VBA kodlarını çalıştırabilirsiniz. Lütfen aşağıdaki işlemleri yapın.
1. Öncelikle, lütfen ihtiyacınız olan onay kutularını ekleyin. Buraya eklemelisiniz ActiveX Kontrolü onay kutuları aşağıdaki ekran görüntüsü gibi:
2. Ardından Ara Toplam + F11 tuşlarını aynı anda açmak için Uygulamalar için Microsoft Visual Basic pencere.
3. Açılışta Uygulamalar için Microsoft Visual Basic Pencere, tıklayın Ekle > Sınıf Modülü.
4. Sınıf adını şu şekilde değiştirin: clsChk içinde (Name) kutusu Emlaklar bölmesine gidin ve ardından aşağıdaki VBA kodunu kopyalayıp ilgili Kod pencere. Ekran görüntüsüne bakın:
VBA kodu 1: Her seferinde yalnızca bir onay kutusu seçin
Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub
Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Value = False
xObj.Object.Enabled = False
End If
Next
Else
I = Right(Target.Name, Len(Target.Name) - 8)
For n = 1 To ActiveSheet.OLEObjects.Count
If n <> Int(I) Then
Set xObj = ActiveSheet.OLEObjects.Item(n)
xObj.Object.Enabled = True
End If
Next
End If
End Sub
5. Şimdi tıklayın Ekle > modül, ardından aşağıdaki VBA kodunu kopyalayıp modül pencere.
VBA kodu 2: Her seferinde yalnızca bir onay kutusu seçin
Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
Set xSht = ActiveSheet
Set xCollection = Nothing
For Each xObj In xSht.OLEObjects
If xObj.Name Like "CheckBox**" Then
Set xChk = New ClsChk
Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
xCollection.Add xChk
End If
Next
Set xChk = Nothing
End Sub
6. Tuşuna basın. F5 kodu çalıştırmak için anahtar.
Şu andan itibaren, çalışma sayfasındaki onay kutularından herhangi birini işaretlediğinizde, diğer onay kutuları otomatik olarak devre dışı bırakılacak ve tüm onay kutularını yeniden etkinleştirmek için işaretini kaldırabilirsiniz.
not: Onay kutusu grubuna yeni onay kutusu eklenirse, tüm onay kutularını yeniden etkinleştirmek için lütfen VBA kodunu yeniden çalıştırın. Onay kutusu grubundan onay kutusunun silinmesi, kodu yeniden çalıştırmanız gerekir.
Rsevinçli makaleler:
- Excel'deki onay kutusuna dayalı olarak verileri nasıl filtreleyebilirim?
- Excel'de satır gizlendiğinde onay kutusu nasıl gizlenir?
- Excel'de onay kutusu ile hücre veya satır nasıl vurgulanır?
- Excel'de birden çok onay kutusu olan bir açılır liste nasıl oluşturulur?
- Excel'de bir onay kutusu işaretlenmişse bir hücreye tarih damgası nasıl eklenir?
En İyi Ofis Üretkenlik Araçları
Kutools for Excel ile Excel Becerilerinizi Güçlendirin ve Daha Önce Hiç Olmadığı Gibi Verimliliği Deneyimleyin. Kutools for Excel, Üretkenliği Artırmak ve Zamandan Tasarruf Etmek için 300'den Fazla Gelişmiş Özellik Sunar. En Çok İhtiyacınız Olan Özelliği Almak İçin Buraya Tıklayın...
Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir
- Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
- Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
- Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!