Ihmeellinen ongelma:
yritän VBA:ssa saada formilla olevan testiboksin kiinni monien joukosta. Se onnistuu kun kirjoitan boksin nimen suoraan. Mutta kun pitäisi koota boksin nimi kahdesta osasta (sijoitettu stringiin), niin enpäs osaakaan....
eli toimii: boksi_1.backcolor = musta
mutta ei toimia a= "boksi_" & "1" a.backcolor = musta
Eikö näin muka voi tehdä --- kai siihen boksiin nyt jotenkin muutenkn saisi kiinni kuin tuolla ekalla tavalla.... ?
Tekstiboksin valinta nimen perusteella...?
2
288
Vastaukset
- xxxxx
Et voi merkkijonona antaa formin nimeä sillä sitä VB ei ymmärrä.
Voit tehdä homman ainakin kahdella eri tavalla.
Tapa 1:
'Määritä formit taulukkona:
Dim Boksiformit(10) as form
'aseta formit taulukkoon
'viitataan siis formin nimellä
set Boksiformit(1)=Boksi_1
set Boksiformit(2)=ToinenBoksiForm
'nyt voit viitata numerolla
Boksiformit(N).backcolor=musta
Tapa2: Etsi formi taulukosta. Tee funktio, joka palautaa formin nron. Forms-käskyllä voit viitata formiin numeroilla.
'funktio palautaa formin nron ja -1 jos formia ei ole
Function PalautaFormNro(ForminNimi$)
dim i%
for i=0 to forms.count-1
if forms(i).name=ForminNimi$ then PalautaFormNro=i:exit function
next i
PalautaFormNro=-1'ei ole
End Function
'Ohjelmakoodissa voit nyt toimia näin
dim F%
F=PalautaFormNro("Boksi_1")
if f-1 then forms(F).backcolor=musta
Forms siis on VB:n sisäinen ominaisuus.- alkup.
Hienosti ajateltu!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 467625
- 334203
- 573705
- 503190
- 172866
Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...
Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons652551- 542398
- 512378
- 402339
- 162276