Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Referera txtboxar mha index?

Postades av 2006-12-01 13:37:14 - Harry Rosendahl, i forum microsoft office, Tråden har 7 Kommentarer och lästs av 1585 personer

Hej!
Har ett formulär som innehåller ett antal rader och kolumner bestående av textboxar!
Skulle önska att det var möjligt att referera till textboxarna mha radindex och kolumnindex.

t.ex referens med radindex:
Dim AdressR As String
Dim indRad As Integer


indRad = 2
AdressR = "txtR" + CStr(indR) ;AdressR ges adressen till textbox txtR2

Kan man på nåt sätt använda innehållet i AdressR för att referera till angiven textbox?
alltså ex.vis
(AdressR).Text = "XX" ;textbox med adress som ligger i AdresssR="XX"
Hur löser man ovanstående?

Ett alternativ vore ju att först föra över boxarnas cellinnehåll till Excel-rader och -kolumner och därefter jobba med matriser, men finns det annan lösning?

Jobbar i VBA-kod.

mvh/Harry



Svara

Sv: Referera txtboxar mha index?

Postades av 2006-12-01 16:27:42 - Andreas Hillqvist

Programmerar du i Word, Excel, PowerPoint eller Access?

Om du vill ha ett rutnät så finns ju "Microsoft FlexGrid Control 6.0 (SP6)".

Från Controls collectionen på formulär så kommer du åt en kontroll genom dess namn.

Ett exempel med fyra textboxes: TextBox1_1, TextBox1_2, TextBox2_1 och TextBox2_2:
<info>
[TextBox1_1] [TextBox1_2]
[TextBox2_1] [TextBox2_2]

[CommandButton1]
</info>
Koden för att gå igenom och fylla dem genom deras namn:

Function GetTextBox(Row As Long, Column As Long) As TextBox
    Set GetTextBox = Me.Controls("Textbox" & Row & "_" & Column)
End Function

Private Sub CommandButton1_Click()
Dim X As Long
Dim Y As Long
Dim txt As TextBox

    For X = 1 To 2
        For Y = 1 To 2
            Set txt = GetTextBox(Y, X)
            txt.Text = X & ", " & Y
        Next
    Next
End Sub


Svara

Sv:Referera txtboxar mha index?

Postades av 2006-12-04 09:57:53 - Harry Rosendahl

Hej Andreas!
Tack för ditt svar. Programmerar i dethär fallet i ExcelVBA och har således inte tillgång till Flexgrid som kanske skulle varit användbar i dethär fallet.

Måste tyvärr erkänna att jag inte lyckats få Funktionen GetTextBox att fungera.
Har förenklat den så att jag jobbar med Ett exempel med fyra textboxes: TextBox11, TextBox12, TextBox21 och TextBox22 alltså utan "understreck".
Fastnar alltid på instuktionen: Set GetTextBox = Me.Controls("Textbox" & Row & "_" & Column)
i GetTextBox funktionen med felmeddelandet "Inkompatibla typer".

Sista försöket är med enbart 1st Textbox med namnet Text.
Function GetTextBox(Nmn As String) As TextBox
Set GetTextBox = Me.Controls(Nmn)
End Function

Private Sub cmdButton1_Click()
Dim txt As TextBox

Set txt = GetTextBox("Text")
End Sub

Resultatet blir även i detta renskrapade exempel att jag fastnar på instruktionen
Set GetTextBox = Me.Controls(Nmn) med felmeddelandet:
"Körfel nr 13 Inkompatibla typer"

Vad göra?
mvh/Harry


Svara

Sv: Referera txtboxar mha index?

Postades av 2006-12-04 13:11:03 - Andreas Hillqvist

Du kan lägga in Flexgrid och andra Active X kontroller i Excel.
Högerklicka i toolboxen och välj "Additional Controls"(Eller motsvarande svenskt alternativ) från popupp menyn.

Det låter dom du har en gammal referens till TextBox controllen.
Testa att skapa ett nytt arbetsbok ett nytt formulär och en textbox kontroll.
Om det funkar där så har du identifierat att det är referenser som behöver korrigeras.

Jag har referens till "Microsoft Forms 2.0 Object Library"

Du kan ju testa med att ange fullkvalificerare till TextBox om det skulle vara så att det finns en annan referens som innehåller TextBox:

Private Sub UserForm_Click()
Dim txt As MSForms.TextBox
    Set txt = Me.Controls("TextBox1")
    txt.Text = "You clicked!"
End Sub



Svara

Sv:Referera txtboxar mha index?

Postades av 2006-12-04 15:00:56 - Harry Rosendahl

Har öppnat en ny arbetsbok, skapat ett nytt formulär med en textbox.
TextBox1.
"You clicked!" fungerar !!
kör sedan exemplet i dethär nya förmuläret:
Function GetTextBox(Nmn As String) As TextBox
Set GetTextBox = Me.Controls(Nmn)
End Function
Private Sub cmdButton1_Click()
Dim txt As TextBox

Set txt = GetTextBox("TextBox1")
End Sub
Resultat felmeddelande 13 Inkompatibla typer !!!

När jag kollar referenser, så finns det inget "Microsoft Forms 2.0 Object Library". Ja det finns faktiskt överhuvudtaget inget Microsoft "blabla" Library. alltså inget Library.

När jag högerklickar i toolboxen så får jag upp en popuppmeny med enheldel kontroller varav endel är förkryssade. Ingen Library controll finns och in Flexgrid finns.
Kör med Office 2003 proffessional edition.
Verkar som jag saknar nåt!

mvh/Harry


Svara

Sv: Referera txtboxar mha index?

Postades av 2006-12-04 16:42:40 - Andreas Hillqvist

Jag testade utan att fullständigt namn till textboxen, TextBox, fick samma felmeddelande som dig. Sedan la jag till referensbibliotekets namn: MSForms, alltså: MSForms.TextBox. Då fungerade det.

Jag tittade i objekt browsern. Om man visar dolda objekt så har Excel ett eget Textbox objekt.

Lösningen är alltså att ange fullständigt namn till textbox kontrollen:

Function GetTextBox(Nmn As String) As MSForms.TextBox
    Set GetTextBox = Me.Controls(Nmn)
End Function

Private Sub CommandButton1_Click()
Dim txt As MSForms.TextBox
    Set txt = GetTextBox("TextBox1")
    txt.Text = "You clicked!"
End Sub


Så jag har faktiskt innan svarat på din fråga. Men jag var kanske lite för otydlig om hur. Då jag förutsatte att du förstod vad jag menade.


Svara

Sv:Referera txtboxar mha index?

Postades av 2006-12-05 09:53:52 - Harry Rosendahl

Hej igen Andreas!
Tack för dina svar!
Lösningen för att "stega" igenom 5rader med 5textboxar (TextBox11,TextBox12....Textbox21,TextBox22 ...osv) i varje rad blir nu att se ut såhär:

Function GetTextBox(Nmn As String, Row As Long, Column As Long) As MSForms.TextBox

Set GetTextBox = Me.Controls("TextBox" & Row & Column)

End Function

Private Sub cmdButton1_Click()

Dim X As Long
Dim Y As Long
Dim txt As MSForms.TextBox

For X = 1 To 5
For Y = 1 To 5

Set txt = GetTextBox("TextBox", Y, X)

txt.Text = Y & ", " & X
Next
Next

End Sub

Fungerer perfekt!
Tack för hjälpen!!
MVH/Harry


Svara

Sv: Referera txtboxar mha index?

Postades av 2006-12-05 10:24:32 - Andreas Hillqvist

Behöver du göra det mer effektivt så kan du istället lagra dem i en två dimensionell array. Men då måste du först sätta arrayen vid start.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 617
27 953
271 709
5 714
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies