Excel / VBA - kuidas luua mitu ruutu

Excel / VBA - kuidas luua mitu ruutu

Selles artiklis saate teada, kuidas luua ruudud, mis on automaatselt seotud konkreetsete rakkudega. VBA ei luba korraga mitme ruudu loomist. Saate käsitsi linkida ruudud kindlatesse lahtritesse (kopeeri / kleebi). Iga märkeruutu koopia jaoks peate valima lahtri. See on üsna tüütu ülesanne!

Alustamine

Kontrolli tüüp

  • Excelis on kahte tüüpi märkeruute: vormid ja ActiveX-i juhtelemendid. Käesolevas artiklis kasutame vormi tüüpi.

Vältige oma Exceli lehele liiga palju asju

  • Excel ei käi alati hästi peidetud lehel (ekraanil), eriti kui kavatsete kasutada Exceli mitme versiooni töövihikut.

Märkeruudu loomine

Iga teie märkeruudu puhul on kaks olulist lahtrit:
  • Positsioonirakend : see, mida me oma märkeruutu joonistame.
  • Seotud lahtr : üks, milles me tagastame meie ruudu tulemuse.
  • Pange tähele, et selles näites on positsioonirakud ja seotud rakud samad. Selle kasti kontrollimine või tühistamine tagastab seotud lahtris TRUE või FALSE . Kahjuks ei anna Excel võimalust määrata mitu ruutu. Selle piirangu ületamiseks on kaks võimalikku lahendust:

Lahendus 1

See lihtne VBA-kood, kui (käsitsi) käivitub, loob ruudud koos ühendatud rakkudega.

Kood

  • VBA redaktori avamiseks vajutage oma töövihikus ALT + F11 .
  • Klõpsake nuppu Lisa> Moodul .
  • Kopeerige ja kleepige allolev kood:

 Võimalus selgesõnaliselt Sub Inserer_Cases_a_cocher_Liees () Dim rngCel kui vahemik Dim ChkBx kui märkekast iga rngCeli jaoks valimisel rngCel.MergeArea.Cells Kui .Resize (1, 1) .Adress = rngCel.Address Siis 'Pour ne pas ahere la valeur de la cellule liée, laievez l'apostrophe en début de ligne suivante: '.NumberFormat = ";;;" Määra ChkBx = ActiveSheet.CheckBoxes.Add (.Left, .Top, .Width, .Height) ChkBx 'valeur par défaut: .Value = xlOff' pourrait être True ou 'cellule liée .LinkedCell = rngCel.MergeArea.Cells. Aadress 'Texte de remplacement' .Characters.Text = "TITI" 'texte' .Text = "Toto" 'ou: .Caption = "Toto"' bordure: With .Border 'Style de ligne' .LineStyle = xlLineStyleNone 'ou xlContinuous 'ou xlDashDot ol xashDotDot ou xlDot' couleur '.ColorIndex = 3' 3 = rouge 'ehaisseur du trait' .Weight = 4 End with 'accesssibles aussi les propriétés .Locked, .Name, .Enabled jne. Lõpeta järgmine rngCel End Sub 

Selle koodi kasutamiseks:

Töölehe mis tahes lehelt:
  • Valige lahtrite hulk, kuhu soovite märkeruudud lisada,
  • Vajutage klahvi Alt + F8 .
  • Valige moodul ja klõpsake käsku Run .

Lahendus 2

Selles näites kasutame töölehekülje vahetamise sündmust käivitajana.

See sündmus käivitab koodi automaatselt iga kord, kui valite lahtri (teatud vahemikus).

Kavandatud kood hakkab läbima kõiki valitud vahemiku lahtreid ja kui lahtris on "Wingdings" font, sisestab see märkeruudu.

Kood

Selle koodi sisestamiseks:
  • Avage oma valitud leht.
  • Paremklõpsake lehelehel> Vaata koodi .
  • Kopeerige ja kleepige allolev kood:

 Võimalus Selgesõnaline Private Sub Worksheet_SelectionChange (ByVal Target As Range) „Piirang de la plage. Pour une feuille enière mettez une apostrophe en déut de la ligne suivante Kui ristuvad (Liit ([A2: A10], [D2: D10]), sihtmärk), siis ei väljuta alamplastist A2: A10; D2: D10. Count = 1 või Target.MergeCells Siis kui Target.Font.Name = "Wingdings" Siis Target 'cellule' liée ".Value = Abs (.Range (" A1 "). Value - 1) .NumberFormat =" "" þ ""; Üldine; "" o ""; @ "Rakendus.EnableEvents = Vale .Reageering (" A1 "). Nihutamine (, 1) .Select Application.EnableEvents = Lõpeta lõpp, kui lõpp, kui lõppu 

Selle koodi kasutamiseks:

  • Valige lahtri vahemik.
  • Rakenda Wingdings'i font.
  • Klõpsake kõikjal oma töölehel ja seejärel kõigil eelnevalt valitud lahtritel.

Koodi kasutamine kaitstud töövihiku / lehe abil

 ActiveSheet.Protect "admin" 'admin = votre mot de passe' VÕTA KODU SIIN ActiveSheet.Unprot "admin" 

Kui teie leht on kaitstud, peate koodi kaitsma. Seda on võimalik saavutada alltoodud koodi abil:

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited