/ / Ako môžem odkazovať na dynamicky vytvorený ovládací prvok vo VBA? - vynikajúce, vba, dynamické, referenčné, ovládacie prvky

Ako môžem odkazovať na dynamicky vytvorenú kontrolu vo VBA? - excel, vba, dynamické, referenčné, ovládacie prvky

Hľadal som odpovede, ktoré tu potrebujem, na StackOverflow niekoľko mesiacov (ďakujem všetkým!), Ale zatiaľ moje hľadané výrazy nenájdu výsledok, ktorý potrebujem tentoraz ... preto môj prvý príspevok tu ...

Mám súbor Excel, ktorý obsahuje dva UserForms:

  • Prvá sa používa na zadávanie určitých údajov na faktúre a potom ich exportuje do formátu, ktorý je možné nahrať do nášho proprietárneho účtovného systému.
  • Druhá sa neskôr používa na zaúčtovanie údajov o platbách proti týmto faktúram a potom podobne na export týchto údajov do formátu, ktorý je možné nahrať do nášho účtovného systému.

Druhý formulár musí byť vytvorený dynamicky v roku 2007Userform_Initialize, pretože počet požadovaných platieb (a teda počet vytvorených ovládacích prvkov TextBoxu a štítkov) sa líši v závislosti od veľkosti faktúr. Dokončil som kód na vytvorenie tohto druhého formulára a funguje to dobre, ale rád by som pridal niektoré funkcie, ktoré sa spustia, keď používateľ zmení niektoré z týchto dynamicky vytvorených ovládacích prvkov.

Urobil som to v iných formách pomocou danéhocontrol "s _Change () procedúra (napríklad, keď sa chcem po zadaní sumy dolára presunúť do nasledujúceho políčka, použijem _Change () na SetFocus inde, len čo má hodnota dve číslice za desatinnou čiarkou). Takže moja otázka je: ako môžem vytvoriť _Change () - štýlové postupy pre ovládacie prvky, ktoré ešte neexistujú pred inicializáciou formulára? Existuje spôsob, ako nastaviť „globálny“ postup _Change (), ktorý môžem použiť na prepínanie medzi textovými poľami a používanie príkazov if / then / else na základe ich dynamických mien?

Akékoľvek tipy by boli veľmi ocenil!

odpovede:

0 pre odpoveď č. 1

Keď používam dynamické formuláre, rád vytváram polia objektov na ukladanie relevantných informácií, aby som mohol objekty rýchlo a ľahko odkazovať podľa „názvu“.