Excel բացվող ցանկում ընտրեք մի քանի տարրեր՝ ամբողջական ուղեցույց
Excel-ի բացվող ցուցակները ֆանտաստիկ գործիք են տվյալների հետևողականությունն ու մուտքագրման հեշտությունն ապահովելու համար: Սակայն, ըստ լռելյայն, նրանք սահմանափակում են ձեզ միայն մեկ տարր ընտրելով: Բայց ի՞նչ, եթե ձեզ անհրաժեշտ է մի քանի տարր ընտրել նույն բացվող ցանկից: Այս համապարփակ ուղեցույցը կուսումնասիրի մեթոդներ՝ Excel-ի բացվող ցուցակներում մի քանի ընտրություն միացնելու, կրկնօրինակները կառավարելու, հատուկ բաժանարարներ սահմանելու և այդ ցուցակների շրջանակը սահմանելու համար:
- Կրկնվող տարրերի թույլտվություն
- Ցանկացած առկա իրերի հեռացում
- Պատվերով բաժանարարի կարգավորում
- Նշված միջակայքի սահմանում
- Կատարում պաշտպանված աշխատաթերթում
Բացվող ցանկում մի քանի ընտրություն միացնելը
Այս բաժինը տրամադրում է երկու մեթոդ, որոնք կօգնեն ձեզ միացնել բազմաթիվ ընտրություն Excel-ում բացվող ցանկում:
Օգտագործելով VBA կոդը
Բացվող ցանկում մի քանի ընտրություն թույլ տալու համար կարող եք օգտագործել Visual Basic կիրառական ծրագրերի համար (VBA) Excel-ում: Սցենարը կարող է փոփոխել բացվող ցուցակի վարքագիծը՝ այն դարձնելով բազմակի ընտրության ցուցակ: Խնդրում ենք անել հետևյալը.
Քայլ 1. Բացեք Թերթի (Code) խմբագրիչը
- Բացեք աշխատաթերթը, որը պարունակում է բացվող ցուցակը, որի համար ցանկանում եք միացնել բազմակի ընտրությունը:
- Աջ սեղմեք թերթիկի ներդիրին և ընտրեք Դիտել կոդը համատեքստի ընտրացանկից:
Քայլ 2. Օգտագործեք VBA կոդը
Այժմ պատճենեք հետևյալ VBA կոդը և տեղադրեք այն բացվող թերթիկի (Code) պատուհանում:
VBA կոդ. 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
Արդյունք
Երբ վերադառնաք աշխատաթերթ, բացվող ցանկը ձեզ հնարավորություն կտա ընտրել մի քանի տարբերակներ, տես ստորև ներկայացված ցուցադրությունը.
Վերը նշված VBA կոդը.
- Կիրառվում է ընթացիկ աշխատաթերթի բոլոր տվյալների վավերացման բացվող ցուցակներին, ինչպես առկա, այնպես էլ ապագայում ստեղծվածներին:
- Կանխում է ձեզ միևնույն տարրը մեկից ավելի անգամ յուրաքանչյուր բացվող ցանկում ընտրելուց:
- Օգտագործում է ստորակետ՝ որպես ընտրված տարրերի բաժանարար: Այլ սահմանազատիչներ օգտագործելու համար խնդրում ենք դիտեք այս բաժինը՝ բաժանարարը փոխելու համար.
Օգտագործելով Kutools-ը Excel-ի համար մի քանի կտտոցով
Եթե ձեզ դուր չի գալիս VBA-ն, ապա ավելի հեշտ այլընտրանք է Excel- ի համար նախատեսված գործիքներ's Բազմակի ընտրության Բացվող ցուցակ հատկանիշ. Օգտագործողի համար հարմար այս գործիքը պարզեցնում է բացվող ցուցակներում մի քանի ընտրության հնարավորությունը՝ թույլ տալով հարմարեցնել բաժանարարը և հեշտությամբ կառավարել կրկնօրինակները՝ ձեր տարբեր կարիքները բավարարելու համար:
Այն բանից հետո Excel-ի համար Kutools-ի տեղադրում, գնալ դեպի Կուտոլս ընտրեք Բացվող ցուցակ > Բազմակի ընտրության Բացվող ցուցակ. Այնուհետեւ դուք պետք է կարգավորեք հետեւյալ կերպ.
- Նշեք բացվող ցանկը պարունակող միջակայքը, որից դուք պետք է ընտրեք մի քանի տարրեր:
- Բացվող ցանկի բջիջում նշեք ընտրված տարրերի բաժանարարը:
- Սեղմել OK պարամետրերը լրացնելու համար:
Արդյունք
Այժմ, երբ սեղմում եք նշված տիրույթում բացվող ցուցակով բջիջի վրա, դրա կողքին կհայտնվի ցուցակի վանդակ: Պարզապես կտտացրեք «+» կոճակը տարրերի կողքին՝ դրանք բացվող բջիջում ավելացնելու համար, և սեղմեք «-» կոճակը՝ հեռացնելու այն տարրերը, որոնք այլևս չեք ուզում: Դիտեք ստորև ներկայացված ցուցադրությունը.
- Ստուգել Փաթեթավորեք տեքստը բաժանարար տեղադրելուց հետո տարբերակ, եթե ցանկանում եք ընտրված տարրերը ուղղահայաց ցուցադրել բջջի ներսում: Եթե նախընտրում եք հորիզոնական ցուցակագրում, թողեք այս ընտրանքը չնշված:
- Ստուգել Միացնել որոնումը տարբերակ, եթե ցանկանում եք որոնման տող ավելացնել ձեր բացվող ցուցակին:
- Այս հատկությունը կիրառելու համար խնդրում ենք ներբեռնեք և տեղադրեք Kutools Excel-ի համար առաջին.
Լրացուցիչ գործողություններ բազմակի ընտրության բացվող ցանկի համար
Այս բաժինը հավաքում է տարբեր սցենարներ, որոնք կարող են պահանջվել Տվյալների վավերացման բացվող ցանկում մի քանի ընտրություն միացնելիս:
Թույլատրվում է կրկնօրինակ տարրեր բացվող ցանկում
Կրկնօրինակները կարող են խնդիր լինել, երբ բացվող ցուցակում թույլատրվում է մի քանի ընտրություն: Վերոնշյալ VBA կոդը թույլ չի տալիս կրկնօրինակ տարրեր բացվող ցանկում: Եթե Ձեզ անհրաժեշտ է կրկնօրինակ տարրեր պահել, փորձեք այս բաժնում VBA կոդը:
VBA կոդը. Թույլատրել կրկնօրինակները տվյալների վավերացման բացվող ցանկում
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
Արդյունք
Այժմ դուք կարող եք ընտրել մի քանի տարրեր ընթացիկ աշխատաթերթի բացվող ցուցակներից: Բացվող ցանկի բջիջում որևէ տարր կրկնելու համար շարունակեք ընտրել այդ տարրը ցանկից: Տեսեք սքրինշոթը՝
Բոլոր առկա տարրերը բացվող ցուցակից հեռացնելը
Բացվող ցուցակից մի քանի տարրեր ընտրելուց հետո, երբեմն անհրաժեշտ է հեռացնել առկա տարրը բացվող ցանկի բջիջից: Այս բաժինը տրամադրում է VBA կոդի ևս մեկ կտոր, որը կօգնի ձեզ կատարել այս խնդիրը:
VBA կոդ. Հեռացրեք առկա տարրերը բացվող ցանկի բջիջից
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
Արդյունք
Այս VBA կոդը թույլ է տալիս բացվող ցանկից ընտրել մի քանի տարրեր և հեշտությամբ հեռացնել ձեր արդեն ընտրած ցանկացած տարր: Մի քանի տարրեր ընտրելուց հետո, եթե ցանկանում եք հեռացնել կոնկրետ մեկը, պարզապես նորից ընտրեք այն ցուցակից:
Պատվերով բաժանարարի կարգավորում
Վերը նշված VBA կոդերում սահմանազատիչը դրված է որպես ստորակետ: Դուք կարող եք փոփոխել այս փոփոխականը ցանկացած նախընտրելի նիշի, որպեսզի օգտագործեք որպես բաժանիչ բացվող ցուցակի ընտրության համար: Ահա թե ինչպես կարող եք անել.
Ինչպես տեսնում եք, որ վերը նշված VBA կոդերը բոլորն ունեն հետևյալ տողը.
delimiter = ", "
Դուք պարզապես պետք է փոխեք ստորակետը ցանկացած բաժանարարի, ինչպես ձեզ անհրաժեշտ է: Օրինակ, դուք ցանկանում եք տարանջատել կետերը ստորակետով, փոխեք տողը հետևյալի.
delimiter = "; "
delimiter = vbNewLine
Նշված միջակայքի սահմանում
Վերոնշյալ VBA կոդերը վերաբերում են ընթացիկ աշխատաթերթի բոլոր բացվող ցուցակներին: Եթե ցանկանում եք, որ VBA կոդերը կիրառվեն միայն բացվող ցուցակների որոշակի տիրույթի վրա, կարող եք նշել վերը նշված VBA կոդի միջակայքը հետևյալ կերպ.
Ինչպես տեսնում եք, որ վերը նշված VBA կոդերը բոլորն ունեն հետևյալ տողը.
Set TargetRange = Me.UsedRange
Դուք պարզապես պետք է փոխեք գիծը հետևյալի.
Set TargetRange = Me.Range("C2:C10")
Կատարում պաշտպանված աշխատաթերթում
Պատկերացրեք, որ դուք պաշտպանել եք աշխատանքային թերթիկը գաղտնաբառով:123« և բացվող ցուցակի բջիջները սահմանեք «UnlockedՄինչև պաշտպանությունն ակտիվացնելը, այդպիսով ապահովելով, որ պաշտպանությունից հետո բազմակի ընտրության գործառույթը մնում է ակտիվ: Այնուամենայնիվ, վերը նշված VBA կոդերը չեն կարող աշխատել այս դեպքում, և այս բաժինը նկարագրում է մեկ այլ VBA սկրիպտ, որը հատուկ նախագծված է բազմակի ընտրության գործառույթը կարգավորելու համար: պաշտպանված աշխատաթերթում:
VBA կոդ. միացնել բազմակի ընտրությունը բացվող ցանկում առանց կրկնօրինակների
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
Միացնելով բազմաթիվ ընտրություն Excel-ի բացվող ցուցակներում, դուք կարող եք մեծապես բարելավել ձեր աշխատաթերթերի ֆունկցիոնալությունն ու ճկունությունը: Անկախ նրանից, թե ձեզ հարմար է VBA կոդավորումը, թե նախընտրում եք ավելի պարզ լուծում, ինչպիսին Kutools-ն է, դուք այժմ հնարավորություն ունեք վերափոխելու ձեր ստանդարտ բացվող ցուցակները դինամիկ, բազմաֆունկցիոնալ գործիքների: Այս հմտություններով դուք այժմ կարող եք ստեղծել ավելի դինամիկ և օգտագործողի համար հարմար Excel փաստաթղթեր: Նրանց համար, ովքեր ցանկանում են ավելի խորանալ Excel-ի հնարավորությունների մեջ, մեր կայքը պարծենում է բազմաթիվ ձեռնարկներով: Բացահայտեք Excel-ի ավելի շատ խորհուրդներ և հնարքներ այստեղ.
Առնչվող հոդվածներ
Excel- ի բացման ցուցակը մուտքագրելիս ավտոմատ լրացնել
Եթե ունեք տվյալների վավերացման մեծ ցանկ ունեցող ցուցիչ, ապա հարկավոր է ոլորել ցուցակում `պատշաճը գտնելու համար, կամ ամբողջ բառն ուղղակիորեն մուտքագրել ցուցակի վանդակում: Եթե կա բացման ցուցակում առաջին տառը մուտքագրելիս ավտոմատ կերպով լրացնելու թույլտվության մեթոդ, ամեն ինչ կդառնա ավելի հեշտ: Այս ձեռնարկը տրամադրում է խնդիրը լուծելու մեթոդը:
Excel- ում ստեղծեք մեկ այլ աշխատանքային գրքից բացվող ցուցակ
Տվյալների վավերացման բացվող ցուցակը աշխատանքային գրքում ստեղծելը բավականին հեշտ է: Բայց եթե տվյալների վավերացման համար անհրաժեշտ ցուցակի տվյալները տեղակայվեն մեկ այլ աշխատանքային գրքում, ի՞նչ կանեիք: Այս ձեռնարկում դուք կսովորեք, թե ինչպես մանրամասնորեն ստեղծել Excel- ի մեկ այլ աշխատանքային գրքից թողարկված ցանկի ցուցակ:
Excel- ում ստեղծեք որոնելի բացվող ցուցակ
Բազմաթիվ արժեքներով բացվող ցուցակի համար պատշաճ գտնելը հեշտ գործ չէ: Նախկինում մենք ներմուծել ենք բացվող ցուցակը ավտոմատ կերպով լրացնելու մեթոդ, երբ առաջին տառը մուտքագրեք բացվող վանդակում: Ինքնալրացման գործառույթից բացի, դուք կարող եք նաև բաց թողնել ցանկը որոնելի դարձնել `բացվող ցուցակում պատշաճ արժեքներ գտնելու գործում աշխատանքային արդյունավետությունը բարձրացնելու համար: Բացվող ցուցակը որոնելի դարձնելու համար փորձեք այս ձեռնարկի մեթոդը:
Excel- ի բացվող ցուցակում արժեքներ ընտրելիս ավտոմատ կերպով լրացրեք այլ բջիջներ
Ասենք, որ դուք ստեղծել եք բացվող ցուցակ `հիմնվելով B8: B14 բջիջների տիրույթի արժեքների վրա: Բացվող ցուցակում ցանկացած արժեք ընտրելիս ցանկանում եք, որ համապատասխան արժեքները C8: C14 բջիջների տիրույթում ավտոմատ կերպով լրացվեն ընտրված խցում: Խնդրի լուծման համար, այս ձեռնարկի մեթոդները կօգնեն ձեզ:
Գրասենյակի արտադրողականության լավագույն գործիքները
Լրացրեք ձեր Excel-ի հմտությունները Kutools-ի հետ Excel-ի համար և փորձեք արդյունավետությունը, ինչպես երբեք: Kutools-ը Excel-ի համար առաջարկում է ավելի քան 300 առաջադեմ առանձնահատկություններ՝ արտադրողականությունը բարձրացնելու և ժամանակ խնայելու համար: Սեղմեք այստեղ՝ Ձեզ ամենաշատ անհրաժեշտ հատկանիշը ստանալու համար...
Office Tab- ը Tabbed ինտերֆեյսը բերում է Office, և ձեր աշխատանքը շատ ավելի դյուրին դարձրեք
- Միացնել ներդիրներով խմբագրումը և ընթերցումը Word, Excel, PowerPoint- ով, Հրատարակիչ, Access, Visio և Project:
- Բացեք և ստեղծեք բազմաթիվ փաստաթղթեր նույն պատուհանի նոր ներդիրներում, այլ ոչ թե նոր պատուհաններում:
- Բարձրացնում է ձեր արտադրողականությունը 50%-ով և նվազեցնում մկնիկի հարյուրավոր սեղմումները ձեզ համար ամեն օր:
Բովանդակություն
- Բազմաթիվ ընտրությունների միացում
- Օգտագործելով VBA կոդը
- Օգտագործելով Kutools-ը Excel-ի համար մի քանի կտտոցով
- Ավելի շատ գործողություններ
- Կրկնվող տարրերի թույլտվություն
- Ցանկացած առկա իրերի հեռացում
- Պատվերով բաժանարարի կարգավորում
- Նշված միջակայքի սահմանում
- Կատարում պաշտպանված աշխատաթերթում
- Առնչվող հոդվածներ
- Գրասենյակի արտադրողականության լավագույն գործիքները
- մեկնաբանություններ