„Excel“ / „VBA“ - kaip sukurti kelis žymės langelius

„Excel“ / „VBA“ - kaip sukurti kelis žymės langelius

Šiame straipsnyje sužinosite, kaip sukurti žymimuosius langelius, kurie automatiškai susieti su konkrečiomis ląstelėmis. VBA neleidžia vienu metu sukurti kelių žymimųjų langelių. Galite rankiniu būdu susieti žymės langelius su konkrečiais langeliais (Kopijuoti / Įklijuoti). Kiekvienai jūsų žymės langelio kopijai turite pasirinkti langelį. Tai gana sunki užduotis!

Darbo pradžia

Valdymo tipas

  • Programoje „Excel“ yra dviejų tipų žymės langeliai: formos ir „ActiveX“ valdikliai. Šiame straipsnyje naudosime formos tipą.

Venkite pernelyg daug „Excel“ lapų

  • „Excel“ ne visada tvarko netinkamą puslapį (ekraną), ypač jei ketinate naudoti darbo knygą keliose „Excel“ versijose.

Pažymėkite langelius

Kiekvienam jūsų žymimiesiems langeliams bus du svarbūs elementai:
  • Padėties langelis : tas, kurį mes pažymėsime.
  • Susietas langelis : tas, kuriame mes grąžinsime mūsų žymės langelio rezultatą.
  • Atkreipkite dėmesį, kad šiame pavyzdyje pozicijos langelis ir susietas langelis yra vienodi. Pažymėjus šį langelį arba išjungus žymėjimą, susietame langelyje bus grąžinta TRUE arba FALSE . Deja, „Excel“ nesuteikia galimybės nustatyti kelių žymimųjų langelių. Yra du galimi sprendimai, kaip įveikti šį apribojimą:

1 sprendimas

Šis paprastas VBA kodas, kai (rankiniu būdu) suaktyvinamas, žymės langelius kartu su susietais langeliais.

Kodas

  • Paspauskite ALT + F11, kad galėtumėte pasiekti VBA redaktorių.
  • Spustelėkite Įterpti> Modulis .
  • Nukopijuokite ir įklijuokite šį kodą:

 Pasirinkimas Aiškus Sub Inserer_Cases_a_cocher_Liees () „Dim rngCel“ kaip diapazonas „Dim ChkBx“ kaip žymės langelis kiekvienam rngCel pasirinkimui su rngCel.MergeArea.Cells Jei .Resize (1, 1) .Address = rngCel.Address Tada „Pour ne pas affic a la cellery liée, didevez l'apostrophe en début de ligne suivante: „.NumberFormat =" ;;; " Nustatykite ChkBx = ActiveSheet.CheckBoxes.Add (.Left, .Top, .Width, .Height) Su ChkBx 'valeur par défaut: .Value = xlOff' pourrait être True ou False 'cellule liée .LinkedCell = rngCel.MergeArea.Cells. „Texte de remplacement“ adresas .Characters.Text = "TITI" 'texte' .Text = "Toto" 'ou: .Caption = "Toto"' ribojasi: Su .Border 'Stilius' .LineStyle = xlLineStyleNone 'ou xlTęstinis „xlDashDot ou xlDashDotDuOl xlDot“. „ColourIndex = 3 '3 = rouge' épaisseur du trait '.Weight = 4 End with' accesssibles aussi les propriétés .Locked, .Name, .Enabled ir kt. Pabaiga su „Next rngCel End Sub“ 

Jei norite naudoti šį kodą:

Iš bet kurio darbaknygės lapo:
  • Pasirinkite langelių diapazoną, į kurį norite įtraukti žymės langelius,
  • Paspauskite Alt + F8 .
  • Pasirinkite modulį ir spustelėkite Vykdyti .

2 sprendimas

Šiame pavyzdyje mes panaudosime „ Worksheet_SelectionChange“ įvykį kaip trigerį.

Šis įvykis automatiškai paleidžia kodą kiekvieną kartą, kai pasirenkate langelį (tam tikru intervalu).

Siūlomas kodas kils per visas iš pasirinkto diapazono esančias ląsteles ir, jei langelis yra „Wingdings“ šrifte, bus įdėta žymės langelis.

Kodas

Jei norite įterpti šį kodą:
  • Atidarykite pasirinktą lapą.
  • Dešiniuoju pelės mygtuku spustelėkite skirtuką lape> Peržiūrėti kodą .
  • Nukopijuokite ir įklijuokite šį kodą:

 Pasirinkimas Aiškus Privatus Sub darbalapis_PasirinkimasKeisti (ByVal Target As Range) „Apribojimas de la plage“. Pour une feuille entière mettez une apostrophe en laère de la ligne suivante Jei susikerta (Sąjunga ([A2: A10], [D2: D10]), taikinys), tada išeiti iš „Sub“ plokštės A2: A10; D2: D10 Jei taikinys. Skaičius = 1 arba Target.MergeCells Tada Jei Target.Font.Name = "Wingdings" Tada su Target "cellule" liée ".Value = Abs (.Range (" A1 "). Value - 1) .NumberFormat =" "" þ ""; Bendra; "" o ""; @ "Application.EnableEvents = False .Range (" A1 "). Offset (, 1) .Pasirinkite Application.EnableEvents = True End su pabaiga, jei baigsite, jei baigsite 

Jei norite naudoti šį kodą:

  • Pasirinkite ląstelių diapazoną.
  • Taikykite „Wingdings“ šriftą.
  • Spustelėkite bet kurią darbalapio vietą ir po to kiekvieną iš anksčiau pasirinktų langelių.

Kodo naudojimas su saugoma darbo knyga / lapu

 ActiveSheet.Protect "admin" 'admin = votre mot de passe' Įdėkite savo kodą čia ActiveSheet.Unprotect "admin" 

Jei jūsų lapas yra apsaugotas, jums reikės apsaugoti kodą. Tai galima pasiekti naudojant šį kodą:

Ankstesnis Straipsnis Kitas Straipsnis

Geriausi Patarimai