By կգարդներ չորեքշաբթի, 13 հուլիսի 2022 թ
Ավելացնել Excel
Գրառումներ 3
Սիրում 1
Դիտումներ 5.8K
Քվեարկել 0
Ես փոփոխել եմ առարկայի գործառույթը, որպեսզի հեռացնեմ առկա ընտրանքները՝ դրանք վերընտրելու և ավելորդ ;-ները հեռացնելու համար: Ահա վերանայված կոդը.

Private Sub Worksheet_Change (ByVal Target as Range)
«Թարմացվել է Extendoffice 2019/11/13
«Թարմացվել է Քեն Գարդների կողմից 2022/07/11
Dim xRng որպես տիրույթ
Dim xValue1 որպես տող
Dim xValue2 որպես տող
Dim semiColonCnt որպես ամբողջ թիվ
Եթե ​​Target.Count > 1 Ապա Ելք Ենթ
Ս.թ. սխալի Ռեզյումե Next
Սահմանել xRng = Cells.SpecialCells (xlCellTypeAllValidation)
Եթե ​​xRng-ը ոչինչ չէ, ապա դուրս եկեք Sub
Application.EnableEvents = False
«Եթե ոչ Application.Intersect(Target, xRng) ոչինչ է, ապա
Եթե ​​Application.Intersect(Target, xRng) Ապա
xValue2 = Target.Value
Դիմում. Հետարկել
xValue1 = Target.Value
Target.Value = xValue2
Եթե ​​xValue1 <> "" Ապա
Եթե ​​xValue2 <> "" Ապա
Եթե ​​xValue1 = xValue2 Կամ xValue1 = xValue2 & ";" Կամ xValue1 = xValue2 & "; " Այնուհետեւ ' թողեք արժեքը, եթե միայն մեկը ցանկում
xValue1 = Փոխարինել (xValue1, "; ", "")
xValue1 = Փոխարինել (xValue1, ";", "")
Target.Value = xValue1
ElseIf InStr(1, xValue1, "; " & xValue2) Ապա
xValue1 = Replace(xValue1, xValue2, "") ' վերացնում է գոյություն ունեցող արժեքը կրկնվող ընտրության ցանկից
Target.Value = xValue1
ElseIf InStr(1, xValue1, xValue2 & ";") Այնուհետև
xValue1 = Փոխարինել (xValue1, xValue2, "")
Target.Value = xValue1
Ուրիշ
Target.Value = xValue1 & "; " & xValue2
Վերջ: Եթե
Target.Value = Փոխարինել (Target.Value, «;;», «;»)
Target.Value = Փոխարինել (Target.Value, "; ;", ";")
Եթե ​​InStr(1, Target.Value, "; ") = 1 Ապա ' ստուգեք ; որպես առաջին նիշ և հեռացնել այն
Target.Value = Փոխարինել (Target.Value, "; ", "", 1, 1)
Վերջ: Եթե
Եթե ​​InStr(1, Target.Value, ";") = 1 Ապա
Target.Value = Փոխարինել (Target.Value, ";", "", 1, 1)
Վերջ: Եթե
semiColonCnt = 0
For i = 1 To Len (Target.Value)
Եթե ​​InStr(i, Target.Value, «;») Ապա
semiColonCnt = semiColonCnt + 1
Վերջ: Եթե
Հաջորդ i
Եթե ​​semiColonCnt = 1 Ապա 'հեռացնել; եթե վերջին կերպարը
Target.Value = Փոխարինել (Target.Value, "; ", "")
Target.Value = Փոխարինել (Target.Value, ";", "")
Վերջ: Եթե
Վերջ: Եթե
Վերջ: Եթե
Վերջ: Եթե
Application.EnableEvents = Ճիշտ է
Վերջ Sub
Բարև Քեն Գարդներ,

Շնորհակալություն ձեր տարածման համար: Դեմ ե՞ք, եթե ձեր VBA կոդը ավելացնենք մեր ձեռնարկին. Ինչպես ստեղծել բացվող ցուցակ Excel-ում բազմաթիվ ընտրանքներով կամ արժեքներով?

Անհամբեր սպասում եմ ձեզանից լսելու.

Amanda
·
1 տարի առաջ
·
1 Սիրում
·
0 քվե
·
0 Comments
·
Ողջույն, Ամանդա, անպայման շարունակիր: Ես ստացա բնօրինակ կոդը ExtendOffice.
Շնորհավոր, Քեն
·
1 տարի առաջ
·
1 Սիրում
·
0 քվե
·
0 Comments
·
Շնորհավոր Քեն
·
1 տարի առաջ
·
1 Սիրում
·
0 քվե
·
0 Comments
·
Դիտել ամբողջական գրառումը