Tekstiboksin valinta nimen perusteella...?

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.... ?
2360
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

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.

Äänestä
  • Hienosti ajateltu!

    Äänestä

Kommentoi aloitusta


VBA satunnaisesti kirjoitti:

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.... ?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu