VBA - Adăugarea de controale dinamic într-o Formă de utilizator

Pentru a crea suport pentru această demonstrație, am folosit exemplul calculatorului, dar de data aceasta creăm dinamic toate controalele.

Când creați controale dinamice pe un Userform, Excel nu recunoaște numele comenzilor. Aceasta înseamnă că evenimentele generate de comenzile dvs. și proprietățile lor nu vor fi accesibile prin numele atribuite. De exemplu, când creați un buton cu următorul cod:

Setați Bouton = Me.Controls.Add ("Forms.CommandButton.1", "Bt" & i, True)

Numele butonului va fi (în cazul în care i = 1) BT1

Dar evenimentul Private Sub BT1_Click () nu va fi niciodată generat. Pentru a rezolva problema, ați folosit o colecție de obiecte pentru proprietăți și colecții de clase pentru evenimente. Colecțiile de obiecte conțin nu numai controlul, ci și o cheie pentru ao face referire. Prin configurarea proprietății Tag a controalelor cu indicele dorit, colecția de clase poate returna un index care vă permite de asemenea să știți ce comandă a făcut obiectul acestui eveniment.

Nu există nici un control în proiectarea UserForm. Toate comenzile sunt create în mod automat din calculator, inclusiv Containerul de cadre. De asemenea, demo-ul oferă o modalitate de a încorpora butoanele în cadre

Descarca:

Server 1: Adăugați Control UserForm.xls

Articolul Precedent Articolul Următor

Cele Mai Importante Sfaturi