excel如何實現下拉框復選

excel如何實現下拉框復選

excel如何實現下拉框復選?

EXCEL選擇下拉框實現復選

第一步:新建一個excel且設置數據有效性【選中X列–數據–有效性】

excel如何實現下拉框復選

第二步:開發工具–查看代碼–把代碼復制進去保存就OK了

excel如何實現下拉框復選

代碼如下:

Private?Sub?Worksheet_Change(ByVal?Target?As?Range) '?Developed?by?Contextures?Inc. '?www.contextures.com Dim?rngDV?As?Range Dim?oldVal?As?String Dim?newVal?As?String If?Target.Count?>?1?Then?GoTo?exitHandler ? On?Error?Resume?Next Set?rngDV?=?Cells.SpecialCells(xlCellTypeAllValidation) On?Error?GoTo?exitHandler ? If?rngDV?Is?Nothing?Then?GoTo?exitHandler ? If?Intersect(Target,?rngDV)?Is?Nothing?Then ???'do?nothing Else ??Application.EnableEvents?=?False ??newVal?=?Target.Value ??Application.Undo ??oldVal?=?Target.Value ??Target.Value?=?newVal ??If?Target.Column?=?7?Then?'這里規定好哪一列的數據有效性是多選的,A列是第1列,依次類推,如3就是C列,7就是G列 ????If?oldVal?=?""?Then ??????'do?nothing ??????Else ??????If?newVal?=?""?Then ??????'do?nothing ??????Else ????????If?InStr(1,?oldVal,?newVal)??0?Then??'重復選擇視同刪除 ??????????If?InStr(1,?oldVal,?newVal)?+?Len(newVal)?-?1?=?Len(oldVal)?Then?'最后一個選項重復 ????????????Target.Value?=?Left(oldVal,?Len(oldVal)?-?Len(newVal)?-?1) ??????????Else ????????????Target.Value?=?Replace(oldVal,?newVal?&?",",?"")?'不是最后一個選項重復的時候處理逗號 ??????????End?If ????????Else?'不是重復選項就視同增加選項 ????????Target.Value?=?oldVal?&?","?&?newVal '??????NOTE:?you?can?use?a?line?break, '??????instead?of?a?comma '??????Target.Value?=?oldVal?_ '????????&?Chr(10)?&?newVal ????????End?If ??????End?If ????End?If ??End?If End?If ? exitHandler: ??Application.EnableEvents?=?True End?Sub

更多Excel相關技術文章,請訪問Excel基礎教程欄目!

? 版權聲明
THE END
喜歡就支持一下吧
點贊10 分享