İpucu: Digər dillər Google-tərcümə olunur. Sizi ziyarət edə bilərsiniz English bu linkin versiyası.
Daxil ol
x
or
x
x
Qeydiyyatdan
x

or

Excel-də bir çox seçim və ya dəyər ilə açılan siyahı yaratmaq üçün necə?

Varsayılan olaraq, iş sayfanızdaki bir veri doğrulama açılan listesi oluşturduğunuzda, listede yalnız bir öğeyi seçə bilərsiniz. Ancaq açılır siyahıda birdən çox dəyər seçmək istəyirsinizsə, nə edərdiniz? Bu yazıda, açılan siyahıdakı seçimi necə artırdığınızı göstərəcəyik.

VBA koduyla birdən çox seçim ilə açılan siyahı yaradın


Siz maraqlana bilərsiniz:

Bir çox iş səhifəsini / iş kitabını bir iş səhifəsinə / iş kitabına birləşdirin:

Bir çox iş səhifəsini və ya iş kitabını bir iş səhifəsinə və ya iş kitabına birləşdirin, gündəlik işinizdə böyük bir vəzifə ola bilər. Ancaq əgər varsa Excel üçün Kutools, güclü fayda - Birləşdirmək tez bir çox iş səhifəsini, iş kitabını bir iş və ya iş kitabına birləşdirməyə kömək edə bilər.

Excel üçün Kutools 300-dən çox lazımlı Excel alətləri daxildir. 60 gün ərzində heç bir məhdudiyyətsiz cəhd edin. Daha çox oxu İndi pulsuz sınaq yükləyin



VBA koduyla birdən çox seçim ilə açılan siyahı yaradın

VBA metodu ilə, açılan siyahı iş yerinizdə bir yerinə birdən çox dəyər seçə bilər.

1. Açılır siyahınızı yaratdıqdan sonra, məsələn, açılan siyahı1-də yerləşdirilir, Sheet1 seksiyasına sağ vurun və Kodları baxın sağ tıklaya menyusunda. Ekran görüntüsünə baxın:

2. İçində Proqramlar üçün Microsoft Visual Basic pəncərədə, Code redaktorunu açmaq üçün Sheet1-ə iki dəfə basın, sonra redaktorda aşağıdakı VBA kodunu kopyalayıb yapışdırın. Ekran görüntüsünə baxın:

VBA kodu: birdən çox seçim ilə siyahısı açın

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated: 2016/4/12
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    If Target.Count > 1 Then Exit Sub
    On Error Resume Next
    Set xRng = Cells.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, xRng) Is Nothing Then
        xValue2 = Target.Value
        Application.Undo
        xValue1 = Target.Value
        Target.Value = xValue2
        If xValue1 <> "" Then
            If xValue2 <> "" Then
                If xValue1 = xValue2 Or _
                   InStr(1, xValue1, ", " & xValue2) Or _
                   InStr(1, xValue1, xValue2 & ",") Then
                    Target.Value = xValue1
                Else
                    Target.Value = xValue1 & ", " & xValue2
                End If
            End If
        End If
    End If
    Application.EnableEvents = True
End Sub

3. Sonra basın fayl > Yaxın və Microsoft Excel qayıt çıxmaq Proqramlar üçün Microsoft Visual Basic pəncərə.

4. Yaratdığınız açılan siyahıya gedin, ekran görüntüsünün aşağıda göstərildiyi kimi birdən çox dəyər seçə bilərsiniz.

Qeydlər:

1. Yinelenen dəyərlər açılır siyahıda icazə vermir.

2. VBA kodu yalnız mövcud açılan iş kitabında işləyə bilər. İş kitabını bağladığınızda və yenidən açarsanız, VBA kodu iş səhifənizdən avtomatik olaraq silinəcəkdir, ayrıca bir çox seçim artıq istifadə edilə bilməzdir. Çalışma kitabınızı kaydettiğinizde, iş kitabını Excel Makro-Etkin Çalışma Kitabı biçiminde kaydetmeniz lazımdır.


Related articles:



Təklif olunan Məhsuldarlıq Vasitələri

Office Tab

qızıl star1 Chrome, Firefox və yeni Internet Explorer kimi Excel və digər Office proqramlarına lazımlı sekmeleri gətirin.

Excel üçün Kutools

qızıl star1 Amazing! 5 dəqiqədə məhsuldarlığınızı artırın. Heç bir xüsusi bacarıqa ehtiyac yoxdur, hər gün iki saat saxlaya bilərsiniz!

qızıl star1 300 Excel üçün yeni funksiyalar, Excel çox asan və güclü olun:

  • Veriyi ləğv etmədən Cell / Satır / Sütunları birləşdirin.
  • Bir neçə Çarşaf və İş Kitabını birləşdirin və birləşdirin.
  • Çaprazları müqayisə edin, birdən çox aralığa kopyalayın, mətni tarixə, vahidə və valyuta çevrilməsinə çevirin.
  • Rənglər, Paging Subtotals, Advanced Sort və Super Filter tərəfindən sayılan,
  • Daha çox seçin / Insert / Sil / Mətn / Biçim / Bağlantı / Yorum / Çalışma kitabları / Çalışma Qurğuları Tools ...

Excel üçün Kutools-un ekranı

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Randy · 1 years ago
    I'm trying to create 4 columns with drop down lists where I can select multiple values. How do I modify the "drop down list with multiple selections" VBA code so that when I click on a value that has already been entered it removes it from the cell? Thank you in advance.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Randy,
      What do you mean "when I click on a value that has already been entered it removes it from the cell?"
      • To post as a guest, your comment is unpublished.
        Dez · 11 months ago
        I have the same question. My drop down list does not remember values selected. If someone clicks on a cell that has already been populated (not by them, but someone else) the selected values are cleared and the cell is blank again.
  • To post as a guest, your comment is unpublished.
    Johnna · 1 years ago
    I created a drop down list where multiple text selections could be chosen such as "nutrition" ,"weight", and "work" for each caller's reason to phone in. I have a summary page where I want to see how many of each reason were indicated in a particular month. What formula would I use to tell Excel to pull out and tally each of these separately in a given month? Currently, the way I have it set up, it only tallies correctly if I have one reason in the cell for each caller.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Good Day,
      Sorry can't help you solve this problem. Please let me know if you find the answer.
  • To post as a guest, your comment is unpublished.
    Nancy · 1 years ago
    I managed to use this code and successfully create multiple selection drop down boxes. It worked when I closed and re-opened on different days. However, now not all of the cells I originally selected are allowing multiple selection. Only ones done previously, despite using the code for the whole spreadsheet. Can you help?
    • To post as a guest, your comment is unpublished.
      yesenia · 1 years ago
      the cells are most likely locked, right click on all of them, go to format cells, protection, then uncheck the locked cell option
    • To post as a guest, your comment is unpublished.
      Lisa Thompson · 1 years ago
      I'm having the same problem.
  • To post as a guest, your comment is unpublished.
    Desiree · 1 years ago
    Hi all,

    I could do my drop down list perfectly, but my question is: when I select all the items nedded it goes one after another in an horizontal way through the cell, for example: yellow, green, black, red. But how can I make it look in a vertical way?, more like for example: Orange
    blanck
    yellow
    Red
    Because in horizontal the cell becomes pretty long when selecting lots of items.

    Could you please tell me if there's any way to do this?.

    Thank you,

    Desiree
  • To post as a guest, your comment is unpublished.
    Chloe · 1 years ago
    Hi all,

    I have this code on an excel sheet and its cleaning the contents from the drop down list when the cell is selected - I know what part of the code is doing it (the part that says 'fillRng.ClearContents') and I have tried to use some of the above to fix it unsuccessfully... I am new to VBA programming etc. Can anyone offer any help on how to change it so that it when the cell is selected it doesn't clear and entries wont be duplicated please??

    Option Explicit
    Dim fillRng As Range
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim Qualifiers As MSForms.ListBox
    Dim LBobj As OLEObject
    Dim i As Long

    Set LBobj = Me.OLEObjects("ListBox1")
    Set Qualifiers = LBobj.Object

    If Target.Row > 3 And Target.Column = 3 Then
    Set fillRng = Target
    With LBobj
    .Left = fillRng.Left
    .Top = fillRng.Top
    .Width = fillRng.Width
    .Height = 155
    .Visible = True
    End With
    Else
    LBobj.Visible = False
    If Not fillRng Is Nothing Then
    fillRng.ClearContents
    With Qualifiers
    If .ListCount 0 Then
    For i = 0 To .ListCount - 1
    If fillRng.Value = "" Then
    If .Selected(i) Then fillRng.Value = .List(i)
    Else
    If .Selected(i) Then fillRng.Value = _
    fillRng.Value & ", " & .List(i)
    End If
    Next
    End If
    For i = 0 To .ListCount - 1
    .Selected(i) = False
    Next
    End With
    Set fillRng = Nothing
    End If
    End If

    End Sub