ich habe mir eine kleine tabelle erstellt und möchte nun über eine variable eine bestimmte zelle auslesen. die tabelle besteht aus einzelnen textfeldern.
mit folgendem code möchte ich eine zelle auslesen, klappt aber nicht so richtig:
Dim Feld(1 To 10, 1 To 7) As Variant
Dim i As Integer
Dim temp As Object
Public Property Get zellinhalt() As Variant
For i = 1 To 10
temp = „Text“ + Format(i + (i - 1) * 7) + „.text“
Feld(i, 1) = temp
Next i
zellinhalt = Feld
End Property
Option Explicit
Option Base 1
'
Dim Feld(10) As Variant
Dim i As Integer
Dim temp As String
'
Public Property Get zellinhalt() As Variant
For i = 1 To 10
temp = "Text" & 8 \* i - 7 & ".text"
Feld(i) = temp
Next i
zellinhalt = Feld
End Property
'
Sub test()
Dim Versuch, N
Versuch = zellinhalt
For N = 1 To UBound(Feld)
MsgBox Versuch(N)
Next N
End Sub
Warum globale Variablen?
Handelt es sich um Excel-Vba?
Warum eine proberty?
Was hat der Code mit dem Auslesen einer zelle zu tun?
Wieso ein zweidimensionales Array für eine Zelle?
u.v.m. Fragen
ich habe also eine tabelle gebastetlt und möchte sie nun in meinem programm integrieren. per mausklick möchte ich die zellen (text1 bis text40) auslesen. dazu brauche ich eine variable die den namen des jeweiligen textfeldes darstellt und mit deren hilfe ich diese auslesen kann. ich möchte halt nicht jede einzelne zelle benennen, sondern mir über diesen code den namen praktisch generieren.
ich möchte halt nicht
jede einzelne zelle benennen, sondern mir über diesen code den
namen praktisch generieren.
Dann nimm ein Steuerelementefeld.
Steuerelementefelder gibt es aber nur eindimensional.
Lege ein Textfeld auf die Userform und benennst es, wie Du magst. Ich nehme als Beispiel mal ‚txtMatrix‘. Klick das mit rechts an und dann auf ‚kopieren‘. Dann klickst Du auf die Form und dann auf ‚Einfügen‘. Die Frage, ob Du ein Steuerelementefeld möchstest, beantwortest Du mit einem Klick auf ‚Ja‘.
Nun ein Beispielcode, wie Du den Inhalt der Textfelder in ein Array bekommst.
For i = 0 to txtMatrix.Ubound
Array(i) = txtMatrix(i).Text
Next
Was Du sonst mit Deinem Code vor hast, habe ich nicht verstanden. Vor allem was Format da soll. Das habe ich mit dieser Syntax noch nicht gesehen.
verstanden. Vor allem was Format da soll. Das habe ich mit
dieser Syntax noch nicht gesehen.
Hallo Rainer,
ich sah das auch noch nie aber dafür gibt es ja F1.
Scheinbar nutzbar beim Dezimaltrennzeichen ändern und das Vorzeichenbyte bei Zahlenstrings zu entfernen.
Erstaunt hat mich das mit „22.2.2009“, irgendwie hatte ich „22/2/2009“ o.ä. vermutet.
Sub tt()
Dim a
a = 5.5
MsgBox Len(Format(a)) '3
MsgBox Len(Str(a)) '4
MsgBox Format(a) '5,5
MsgBox Str(a) '5.5
a = "27.2.2009"
MsgBox Format(a) '2722009
MsgBox Str(a) '2722009
End Sub
Getestet mit Exel97-Vba, wenn bei VB6 was anderes rauskommt als oben zu sehen dann sag bitte Bescheid, ansonsten gehe ich davon aus in VB kommen die gleichen Ergebnisse.
ich sah das auch noch nie aber dafür gibt es ja F1.
dazu hätte ich VB erst mal starten müssen.
Das war aber gar nicht der Grund für die Frage, deshalb habe ich auch nicht danach gesucht.
Scheinbar nutzbar beim Dezimaltrennzeichen ändern und das
Vorzeichenbyte bei Zahlenstrings zu entfernen.
Erstaunt hat mich das mit „22.2.2009“, irgendwie hatte ich
„22/2/2009“ o.ä. vermutet.
Sub tt()
Dim a
a = 5.5
MsgBox Len(Format(a)) '3
MsgBox Len(Str(a)) '4
MsgBox Format(a) '5,5
MsgBox Str(a) '5.5
a = „27.2.2009“
MsgBox Format(a) '2722009
MsgBox Str(a) '2722009
End Sub
Getestet mit Exel97-Vba, wenn bei VB6 was anderes rauskommt
als oben zu sehen dann sag bitte Bescheid, ansonsten gehe ich
davon aus in VB kommen die gleichen Ergebnisse.
Speziell:
MsgBox Format(a) '5,5
ist seeeeehr interessant! Das kann mir etwas Arbeit ersparen, danke!