Skip i'r prif gynnwys

Dewiswch eitemau lluosog yn y gwymplen Excel - canllaw llawn

Mae cwymplenni Excel yn arf gwych ar gyfer sicrhau cysondeb data a rhwyddineb mynediad. Fodd bynnag, yn ddiofyn, maent yn eich cyfyngu i ddewis un eitem yn unig. Ond beth os oes angen i chi ddewis eitemau lluosog o'r un gwymplen? Bydd y canllaw cynhwysfawr hwn yn archwilio dulliau i alluogi detholiadau lluosog mewn cwymplenni Excel, rheoli copïau dyblyg, gosod gwahanyddion arfer, a diffinio cwmpas y rhestrau hyn.

Tip: Cyn cymhwyso'r dulliau canlynol, gwnewch yn siŵr eich bod wedi creu cwymplenni yn eich taflenni gwaith ymlaen llaw. Os ydych chi eisiau gwybod sut i greu cwymplenni dilysu data, dilynwch y cyfarwyddiadau yn yr erthygl hon: Sut i greu cwymplenni dilysu data yn Excel.

Galluogi Dewisiadau Lluosog yn y Rhestr Gollwng

Mae'r adran hon yn darparu dau ddull i'ch helpu i alluogi detholiadau lluosog yn y gwymplen yn Excel.

Gan ddefnyddio Cod VBA

Er mwyn caniatáu dewis lluosog yn y gwymplen, gallwch ei ddefnyddio Sylfaenol weledol ar gyfer cymwysiadau (VBA) yn Excel. Gall y sgript addasu ymddygiad rhestr gwympo i'w gwneud yn rhestr amlddewis. Gwnewch fel a ganlyn.

Cam 1: Agorwch y golygydd Dalen (Cod).
  1. Agorwch y daflen waith sy'n cynnwys y gwymplen yr ydych am alluogi dewis lluosog ar ei chyfer.
  2. De-gliciwch ar y tab taflen a dewiswch Gweld y Cod o'r ddewislen cyd-destun.
Cam 2: Defnyddiwch god VBA

Nawr copïwch y cod VBA canlynol a'i gludo i ffenestr y daflen agoriadol (Cod).

Cod VBA: Galluogi dewisiadau lluosog yn y gwymplen Excel.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub

Canlyniad

Pan fyddwch yn dychwelyd i'r daflen waith, bydd y gwymplen yn eich galluogi i ddewis opsiynau lluosog, gweler y demo isod:

Nodiadau:
Y cod VBA uchod:
  • Yn berthnasol i'r holl gwymplenni dilysu data yn y daflen waith gyfredol, y rhai presennol a'r rhai a grëwyd yn y dyfodol.
  • Yn eich atal rhag dewis yr un eitem fwy nag unwaith ym mhob gwymplen.
  • Yn defnyddio coma fel y gwahanydd ar gyfer yr eitemau a ddewiswyd. I ddefnyddio amffinyddion eraill, os gwelwch yn dda gweler yr adran hon i newid y gwahanydd.

Defnyddio Kutools ar gyfer Excel mewn ychydig o gliciau

Os nad ydych chi'n gyfforddus â VBA, dewis arall haws yw Kutools ar gyfer Excel's Rhestr Gollwng Aml-ddewis feature. This user-friendly tool simplifies enabling multiple selections in drop-down lists, allowing you to customize the separator and manage duplicates effortlessly to meet your different needs.

Ar ôl gosod Kutools ar gyfer Excel, ewch i'r Kutools tab, dewiswch Rhestr ostwng > Rhestr Gollwng Aml-ddewis. Yna mae angen i chi ffurfweddu fel a ganlyn.

  1. Specify the range containing the drop-down list from which you need to select multiple items.
  2. Specify the separator for the selected items in the drop-down list cell.
  3. Cliciwch OK i gwblhau'r gosodiadau.
Canlyniad

Now, when you click on a cell with a drop-down list in the specified range, a list box will appear next to it. Simply click the "+" button next to the items to add them to the drop-down cell, and click the "-" button to remove any items you don't want anymore. See the demo below:

Nodiadau:
  • Gwiriwch y Lapiwch Testun Ar ôl Mewnosod Gwahanydd opsiwn os ydych chi am arddangos yr eitemau a ddewiswyd yn fertigol o fewn y gell. Os yw'n well gennych restriad llorweddol, gadewch yr opsiwn hwn heb ei wirio.
  • Gwiriwch y Galluogi chwilio option if you want to add a search bar to your drop-down list.
  • I gymhwyso'r nodwedd hon, os gwelwch yn dda lawrlwytho a gosod Kutools ar gyfer Excel gyntaf.

Mwy o weithrediadau ar gyfer rhestr gwympo aml-ddewis

Mae'r adran hon yn casglu'r gwahanol senarios a all fod yn ofynnol wrth alluogi detholiadau lluosog yn y gwymplen Dilysu Data.


Caniatáu eitemau dyblyg yn y gwymplen

Gall copïau dyblyg fod yn broblem pan ganiateir dewis lluosog mewn cwymprestr. Nid yw'r cod VBA uchod yn caniatáu eitemau dyblyg yn y gwymplen. Os oes angen i chi gadw eitemau dyblyg, rhowch gynnig ar y cod VBA yn yr adran hon.

Cod VBA: Caniatáu dyblygu yn y gwymplen dilysu data

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        Target.Value = xValue1 & delimiter & xValue2
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub
Canlyniad

Nawr gallwch ddewis eitemau lluosog o'r cwymplenni yn y daflen waith gyfredol. I ailadrodd eitem mewn cell rhestr gwympo, parhewch i ddewis yr eitem honno o'r rhestr. Gweler y sgrinlun:


Tynnu unrhyw eitemau presennol o'r gwymplen

Ar ôl dewis eitemau lluosog o gwymplen, efallai y bydd angen i chi weithiau dynnu eitem sy'n bodoli eisoes o'r gell rhestr ostwng. Mae'r adran hon yn darparu darn arall o god VBA i'ch helpu i gyflawni'r dasg hon.

Cod VBA: Tynnwch unrhyw eitemau presennol o'r gell rhestr ostwng

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRngDV As Range
    Dim TargetRange As Range
    Dim oldValue As String
    Dim newValue As String
    Dim delimiter As String
    Dim allValues As Variant
    Dim valueExists As Boolean
    Dim i As Long
    Dim cleanedValue As String

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Set your desired delimiter here

    If Target.CountLarge > 1 Then Exit Sub

    ' Check if the change is within the specific range
    If Intersect(Target, TargetRange) Is Nothing Then Exit Sub

    On Error Resume Next
    Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
    If xRngDV Is Nothing Or Target.Value = "" Then
        ' Skip if there's no data validation or if the cell is cleared
        Application.EnableEvents = True
        Exit Sub
    End If
    On Error GoTo 0

    If Not Intersect(Target, xRngDV) Is Nothing Then
        Application.EnableEvents = False
        newValue = Target.Value
        Application.Undo
        oldValue = Target.Value
        Target.Value = newValue

        ' Split the old value by delimiter and check if new value already exists
        allValues = Split(oldValue, delimiter)
        valueExists = False
        For i = LBound(allValues) To UBound(allValues)
            If Trim(allValues(i)) = newValue Then
                valueExists = True
                Exit For
            End If
        Next i

        ' Add or remove value based on its existence
        If valueExists Then
            ' Remove the value
            cleanedValue = ""
            For i = LBound(allValues) To UBound(allValues)
                If Trim(allValues(i)) <> newValue Then
                    If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
                    cleanedValue = cleanedValue & Trim(allValues(i))
                End If
            Next i
            Target.Value = cleanedValue
        Else
            ' Add the value
            If oldValue <> "" Then
                Target.Value = oldValue & delimiter & newValue
            Else
                Target.Value = newValue
            End If
        End If

        Application.EnableEvents = True
    End If
End Sub
Canlyniad

Mae'r cod VBA hwn yn eich galluogi i ddewis eitemau lluosog o gwymplen a thynnu unrhyw eitem rydych chi eisoes wedi'i dewis yn hawdd. Ar ôl dewis eitemau lluosog, os ydych chi am gael gwared ar un penodol, dewiswch hi eto o'r rhestr.


Gosod gwahanydd personol

Mae'r amffinydd wedi'i osod fel coma yn y codau VBA uchod. Gallwch addasu'r newidyn hwn i unrhyw nod a ffefrir i'w ddefnyddio fel gwahanydd ar gyfer y dewisiadau rhestr gwympo. Dyma sut y gallwch chi wneud:

Fel y gwelwch, mae gan bob un o'r codau VBA uchod y llinell ganlynol:

delimiter = ", "

Does ond angen i chi newid y coma i unrhyw wahanydd yn ôl yr angen. Er enghraifft, rydych chi am wahanu'r eitemau yn ôl hanner colon, newidiwch y llinell i:

delimiter = "; "
Nodyn: I newid y amffinydd i nod llinell newydd yn y codau VBA hyn, newidiwch y llinell hon i:
delimiter = vbNewLine

Gosod ystod benodol

Mae'r codau VBA uchod yn berthnasol i'r holl gwymplenni yn y daflen waith gyfredol. Os ydych chi am i'r codau VBA fod yn berthnasol i ystod benodol o restrau cwympo yn unig, gallwch chi nodi'r ystod yn y cod VBA uchod fel a ganlyn.

Fel y gwelwch, mae gan bob un o'r codau VBA uchod y llinell ganlynol:

Set TargetRange = Me.UsedRange

Does ond angen i chi newid y llinell i:

Set TargetRange = Me.Range("C2:C10")
Nodyn: Yma C2: C10 yw'r ystod sy'n cynnwys y gwymplen rydych chi am ei gosod fel dewis lluosog.

Gweithredu mewn taflen waith warchodedig

Dychmygwch eich bod wedi diogelu taflen waith gyda'r cyfrinair "123" a gosodwch gelloedd y rhestr gwympo i "ddatgloi" cyn actifadu'r amddiffyniad, gan sicrhau bod y swyddogaeth aml-ddewis yn parhau'n weithredol ar ôl yr amddiffyniad. Fodd bynnag, ni all y codau VBA a grybwyllir uchod weithio yn yr achos hwn, ac mae'r adran hon yn disgrifio sgript VBA arall sydd wedi'i chynllunio'n benodol i drin swyddogaeth aml-ddewis mewn taflen waith warchodedig.

Cod VBA: Galluogi dewis lluosog yn y gwymplen heb ddyblygiadau


Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range
    Dim isProtected As Boolean
    Dim pswd As Variant

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    
    ' Check if sheet is protected
    isProtected = Me.ProtectContents
    If isProtected Then
        ' If protected, temporarily unprotect. Adjust or remove the password as needed.
        pswd = "yourPassword" ' Change or remove this as needed
        Me.Unprotect Password:=pswd
    End If

    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then
        If isProtected Then Me.Protect Password:=pswd
        Exit Sub
    End If
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0

    ' Re-protect the sheet if it was protected
    If isProtected Then
        Me.Protect Password:=pswd
    End If
End Sub
Nodyn: Yn y cod, gwnewch yn siŵr eich bod yn disodli “eich Cyfrinair” yn y llinell pswd = "eich Cyfrinair" gyda'r cyfrinair gwirioneddol a ddefnyddiwch ar gyfer diogelu'r daflen waith. Er enghraifft, os yw eich cyfrinair yn "abc123", yna dylai'r llinell fod pswd = "abc123".

Trwy alluogi dewisiadau lluosog mewn cwymplenni Excel, gallwch wella ymarferoldeb a hyblygrwydd eich taflenni gwaith yn fawr. P'un a ydych chi'n gyfforddus â chodio VBA neu'n well gennych ddatrysiad symlach fel Kutools, mae gennych nawr y gallu i drawsnewid eich rhestrau cwympo safonol yn offer deinamig, aml-ddethol. Gyda'r sgiliau hyn, rydych chi bellach yn barod i greu dogfennau Excel mwy deinamig a hawdd eu defnyddio. I'r rhai sy'n awyddus i ymchwilio'n ddyfnach i alluoedd Excel, mae ein gwefan yn cynnwys cyfoeth o sesiynau tiwtorial. Darganfyddwch fwy o awgrymiadau a thriciau Excel yma.

Offer Cynhyrchiant Swyddfa Gorau

🤖 Kutools AI Aide: Chwyldro dadansoddi data yn seiliedig ar: Cyflawniad Deallus   |  Cynhyrchu Cod  |  Creu Fformiwlâu Personol  |  Dadansoddi Data a Chynhyrchu Siartiau  |  Invoke Swyddogaethau Kutools...
Nodweddion Poblogaidd: Darganfod, Amlygu neu Adnabod Dyblygiadau   |  Dileu Rhesi Gwag   |  Cyfuno Colofnau neu Gelloedd heb Colli Data   |   Rownd heb Fformiwla ...
Super-edrych: VLookup Meini Prawf Lluosog    VLookup Gwerth Lluosog  |   VLookup Ar Draws Taflenni Lluosog   |   Edrych Niwlog ....
Rhestr gwympo Uwch: Creu Rhestr Gollwng yn Gyflym   |  Rhestr Gollwng Dibynnol   |  Rhestr Gollwng Aml-ddewis ....
Rheolwr Colofn: Ychwanegu Nifer Penodol o Golofnau  |  Symud Colofnau  |  Toglo Statws Gwelededd Colofnau Cudd  |  Cymharwch Ystodau a Cholofnau ...
Nodweddion dan Sylw: Ffocws ar y Grid   |  Golwg Dylunio   |   Bar Fformiwla Mawr    Rheolwr Llyfr Gwaith a Thaflen   |  Llyfrgell Adnoddau (Testun Auto)   |  Dewiswr Dyddiad   |  Cyfuno Taflenni Gwaith   |  Amgryptio/Dadgryptio Celloedd    Anfon E-byst trwy Restr   |  Hidlo Super   |   Hidlo Arbennig (hidlo mewn print trwm/italig/strikethrough...) ...
15 Set Offer Gorau12 Testun offer (Ychwanegu Testun, Dileu Cymeriadau,...)   |   50 + Siart Mathau (Siart Gantt,...)   |   40+ Ymarferol Fformiwlâu (Cyfrifwch oedran yn seiliedig ar ben-blwydd,...)   |   19 mewnosod offer (Mewnosod Cod QR, Mewnosod Llun o'r Llwybr,...)   |   12 Trosi offer (Rhifau i Eiriau, Trosi arian cyfred,...)   |   7 Uno a Hollti offer (Rhesi Cyfuno Uwch, Celloedd Hollt,...)   |   ... a mwy

Supercharge Eich Sgiliau Excel gyda Kutools ar gyfer Excel, a Phrofiad Effeithlonrwydd Fel Erioed Erioed. Kutools ar gyfer Excel Yn Cynnig Dros 300 o Nodweddion Uwch i Hybu Cynhyrchiant ac Arbed Amser.  Cliciwch Yma i Gael Y Nodwedd Sydd Ei Angen Y Mwyaf...

Disgrifiad


Mae Office Tab yn dod â rhyngwyneb Tabbed i Office, ac yn Gwneud Eich Gwaith yn Haws o lawer

  • Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
  • Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
  • Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!