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
326
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
Vain vasemmistolaiset rakennemuutokset pelastavat Suomen
Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot1283912Purra on kantanut vastuuta täyden kympin arvoisesti
Luottoluokituksen lasku, ennätysvelat ja ennätystyöttömyys siitä muutamana esimerkkinä. Jatkakoon hän hyvin aloittamaans143361- 193285
- 793237
Persut huutaa taas: "kato! muslimi!"
Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe573214- 292875
- 472677
- 542617
- 672397
- 192337