Comment définir plusieurs sélections dans la liste déroulante Excel
1. Affichez l'onglet "Outils de développement". . Ouvrez Excel 2010 et cliquez sur l'icône "Fichier" dans le coin supérieur gauche. Cliquez sur "Options" pour afficher la boîte de dialogue "Options Excel", cochez "Outils de développement" dans "Personnaliser le ruban" et cliquez sur OK.
Recommandé : "tutoriel Excel"
2. Définissez le contenu de l'option du liste déroulante. Changez le nom de la feuille de calcul feuille2 en "données" et entrez les options déroulantes dans la colonne A.
3. Insérez le contrôle ListBox.
1) Dans la feuille de calcul 1, sélectionnez la colonne A, cliquez sur l'onglet "Outils de développement", sélectionnez "Zone de liste" dans "Insérer" et placez-la dans la colonne A.
2) Sélectionnez le contrôle de la zone de liste, cliquez sur "Mode conception", cliquez sur "Propriétés" en mode conception, la boîte de propriété ListBox apparaîtra et sélectionnez "Ordre par catégorie". Modifiez l'élément MultiSelect sur "1 - fmMultiSelectMulti", modifiez l'élément ListStyle sur "1 - fmListStyleOption" et définissez l'élément ListFillRange sur le nom de la table et la plage de cellules où se trouve l'option de menu sélectionnée. Le format spécifique est "data!A1". :A8".
4. Insérez le code. Dans Excel, cliquez sur "Visual Basic" dans les outils de développement pour ouvrir l'éditeur VB. Double-cliquez sur Sheet1 dans l'éditeur VB pour ouvrir l'éditeur de sheet1. Collez le code suivant dans l'éditeur et enregistrez-le.
Enregistrez le code dans la feuille 1 :
Private Sub ListBox1_Change() If ReLoad Then Exit Sub '见下方说明 For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then t = t & "," & ListBox1.List(i) Next ActiveCell = Mid(t, 2) End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ListBox1 If ActiveCell.Column = 1 And ActiveCell.Row > 1 Then t = ActiveCell.Value ReLoad = True '如果是根据单元格的值修改列表框,则暂时屏蔽listbox的change事件。 For i = 0 To .ListCount - 1 '根据活动单元格内容修改列表框中被选中的内容 If InStr(t, .List(i)) Then .Selected(i) = True Else .Selected(i) = False End If Next ReLoad = False .Top = ActiveCell.Top + ActiveCell.Height '以下语句根据活动单元格位置显示列表框 .Left = ActiveCell.Left .Width = ActiveCell.Width .Visible = True Else .Visible = False End If End With End Sub
Double-cliquez sur Sheet2 dans l'éditeur VB, collez le code suivant dans l'éditeur et enregistrez. (Ce code est ajouté pour définir dynamiquement la valeur de l'option du menu déroulant. Si la valeur de l'option du menu déroulant est fixe, elle peut être spécifiée directement dans l'attribut ListFillRange de la ListBox sans le code suivant)
dans la feuille2 (données) Enregistrez le code dans :
Private Sub Worksheet_Change(ByVal Target As Range) Sheets("Sheet1").ListBox1.ListFillRange = "data!a1:a" & Cells(1, 1).End(xlDown).Row End Sub
Après avoir enregistré le code, fermez l'éditeur VB et cliquez sur la cellule de la colonne A de la feuille1 feuille de calcul. Le résultat est tel qu’indiqué dans la figure ci-dessous.
Enregistrer dans le module 1 :
Public ReLoad As Boolean 'Switch listbox change event
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!