koodi?

Peksu_

Olen kirjoittanut tällaisen koodin vba:lla yhden commandbuttonin alle. Se lisää 10 textboxia lomakkeelle.

Dim Txtbox1(0 To 10)
X = 30
For j = 0 To 10
Set Txtbox1(j) = Controls.Add("Forms.Textbox.1", , True) 'True = Visible
X = X 20
Txtbox1(j).Width = 125
Txtbox1(j).Height = 15.75
Txtbox1(j).Top = X 36
Txtbox1(j).Left = 24
Next j

Haluaisin noista luoduista uusista textboxeista siirtää tietoja excel-taulukkoon. Minkälainen koodi tarvitaan, jotta tiedän, että haluamani textboxin tieto menee juuri oikeaan paikkaan jotain toista commandbuttonia klikkaamalla?

4

402

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • tätä...

      Application.ActiveSheet.Range("C3") = Txtbox1(1).Text

      • peetee

        Eipä toimi, ilmittaa txtbox1(1):n kohdalla että Sub or Funktion not defined.


      • tätä...
        peetee kirjoitti:

        Eipä toimi, ilmittaa txtbox1(1):n kohdalla että Sub or Funktion not defined.

        Veikkaan että yritit suorittaa rivin joko;

        a) ennen kuin olet lisännyt kontrollit lomakkeelle

        b) toisesta aliohjelmasta, jolloin luomasi taulukko on "out of scope" (jolloin sinun on määriteltävä kontrollitaulukko "globaalisti" siten että se on kaikkien aliohjelmien käytettävissä tai muuten selvitettävä mitä kontrolleja formilla on)

        Tämä koodi on kuitenkin kokeiltu ja todettu toimivaksi:

        Dim Txtbox1(0 To 10)
        X = 30
        For j = 0 To 10
        Set Txtbox1(j) = Controls.Add("Forms.Textbox.1", , True)
        X = X 20
        Txtbox1(j).Text = "Boksi " & j ' Ei välttämätön
        Txtbox1(j).Width = 125
        Txtbox1(j).Height = 15.75
        Txtbox1(j).Top = X 36
        Txtbox1(j).Left = 24
        Next j

        ' Textbox(1):n arvo ("Boksi 1") soluun C3
        Application.ActiveSheet.Range("C3") = Txtbox1(1).Text

        kuten myös tämä:

        ' General
        Dim Txtbox1(0 To 10)

        Private Sub CommandButton1_Click()
        X = 30
        For j = 0 To 10
        Set Txtbox1(j) = Controls.Add("Forms.Textbox.1", , True)
        X = X 20
        Txtbox1(j).Text = "Boksi " & j
        Txtbox1(j).Width = 125
        Txtbox1(j).Height = 15.75
        Txtbox1(j).Top = X 36
        Txtbox1(j).Left = 24
        Next j
        End Sub

        Private Sub CommandButton2_Click()
        Application.ActiveSheet.Range("C3") = Txtbox1(1).Text

        End Sub


      • peetee
        tätä... kirjoitti:

        Veikkaan että yritit suorittaa rivin joko;

        a) ennen kuin olet lisännyt kontrollit lomakkeelle

        b) toisesta aliohjelmasta, jolloin luomasi taulukko on "out of scope" (jolloin sinun on määriteltävä kontrollitaulukko "globaalisti" siten että se on kaikkien aliohjelmien käytettävissä tai muuten selvitettävä mitä kontrolleja formilla on)

        Tämä koodi on kuitenkin kokeiltu ja todettu toimivaksi:

        Dim Txtbox1(0 To 10)
        X = 30
        For j = 0 To 10
        Set Txtbox1(j) = Controls.Add("Forms.Textbox.1", , True)
        X = X 20
        Txtbox1(j).Text = "Boksi " & j ' Ei välttämätön
        Txtbox1(j).Width = 125
        Txtbox1(j).Height = 15.75
        Txtbox1(j).Top = X 36
        Txtbox1(j).Left = 24
        Next j

        ' Textbox(1):n arvo ("Boksi 1") soluun C3
        Application.ActiveSheet.Range("C3") = Txtbox1(1).Text

        kuten myös tämä:

        ' General
        Dim Txtbox1(0 To 10)

        Private Sub CommandButton1_Click()
        X = 30
        For j = 0 To 10
        Set Txtbox1(j) = Controls.Add("Forms.Textbox.1", , True)
        X = X 20
        Txtbox1(j).Text = "Boksi " & j
        Txtbox1(j).Width = 125
        Txtbox1(j).Height = 15.75
        Txtbox1(j).Top = X 36
        Txtbox1(j).Left = 24
        Next j
        End Sub

        Private Sub CommandButton2_Click()
        Application.ActiveSheet.Range("C3") = Txtbox1(1).Text

        End Sub

        Oikeassa olet, nyt toimii. Pienestä johtuvat nuo probleemat tällaisella aloittelijalla.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Sanna Marin kysyi hämmästyneenä: Onko Suomessa jäänmurtajia?

      Nettilehden toimittaja kysyi Sanna Marinilta suoraan, että sovittiinko nuo jäänmurtajien kaupat jo 2019, jolloin Marin k
      Maailman menoa
      109
      4282
    2. Voiko normaali ihminen ryhtyä vasemmistolaiseksi?

      Tätä jäin pohdiskelemaan.
      Maailman menoa
      149
      3673
    3. SDP haluaa 40 000 nettomaahanmuuttajaa

      SDP:n Suunnanmuutos-vaihtoehtobudjetissa, käy ilmi, että demarit itse asiassa vaativat räjähdysmäistä ”työperäisen” maah
      Maailman menoa
      88
      3435
    4. Mikä tuota vasemmistolaisista jankkaavaa vaivaa?

      Pahasti on ihon alle, siis korvien väliin, päässeet kummittelemaan. Ei ole terveen ihmisen merkki jankata yhdestä asia
      Maailman menoa
      39
      2829
    5. Mitä ajattelit kun näit

      kaivattusi ensimmäisen kerran? xd
      Ikävä
      129
      1730
    6. Nyt meni lopulliset lämmöt.

      Alan käyttäytymään yhtä kylmästi miehiä kohtaan kuin mua kohtaan on käyttäydytty ja vain käytetty viimeiset pari vuotta
      Sinkut
      37
      1558
    7. Orpo loukkaantui fasismiin viittaavasta sanavalinnasta

      Mutta miksi loukkaantui? Orpohan on tehnyt yhteistyötä fasistien kanssa jo vuonna 2019, siis jo neljä vuotta ennen loukk
      Maailman menoa
      14
      1201
    8. Sulla on avaimet ja keinot

      Jos haluat jatkaa tutustumista. Itse olen niin jäässä etten pysty tekemään enää mitään. Pidempi keppi johon on helpompi
      Ikävä
      19
      1184
    9. Meitä ei tule

      Koska periaatteemme ovat rakkautta vahvempia. Tämä on siis koettelemus, jonka tarkoitus on vahvistaa meitä yksilöinä 😌
      Ikävä
      22
      1144
    10. Onko erityinen paikka jossa haluaisit nyt olla

      Onko joku spesiaali lempipaikka missä mieluiten olisit?
      Ikävä
      42
      1140
    Aihe