< návrat zpět
MS Excel
Téma: Hodnota pole jako název druhého pole
Zaslal/a 3richard3 18.2.2016 10:29
Dobrý den,
potřeboval bych poradit s makrem kde hodnota jednoho pole VZZ_nazev(0) = vyrobky
je dokazem na dalši pole vyrobky()
Sub Test2()
Dim VZZ_nazev()
Dim vyrobky()
Dim sluzby()
VZZ_nazev = Array("vyrobky", "sluzby", "tzbozi", "nzbozi")
vyrobky = Array(601000, 601001, 601002, 601010, 611300)
sluzby = Array(501515, 501640)
ucet = 601000
For k = 0 To UBound(VZZ_nazev)
a = VZZ_nazev(k)
For x = 0 To UBound(a)'!!!!tady už to nefunguje
If ucet = a(x) Then
b = "OK"
End If
Next x
Next k
End Sub
Díky moc za radu.
Příloha: 30163_pole.zip (13kB, staženo 13x)
eLCHa(18.2.2016 10:45)#030165 a = VZZ_nazev(k)do proměnné
a přiřazujete jedinou hodnotu z pole
VZZ_nazev.
a tedy není pole a proto
If ucet = a(x) Thenhlásí chybu
citovat
elninoslov(20.2.2016 16:57)#030256 To by som riešil asi cez vlastný Type:
Public Type TZaznam
Nazev As String
Ucet As Variant
End Type
Sub Test2()
Dim VZZ_nazev() As TZaznam, k As Byte, x As Byte, b As String, Ucet As Long
ReDim VZZ_nazev(3)
VZZ_nazev(0).Nazev = "vyrobky": VZZ_nazev(0).Ucet = Array(601000, 601001, 601002, 601010, 611300)
VZZ_nazev(1).Nazev = "sluzby": VZZ_nazev(1).Ucet = Array(501515, 501640)
VZZ_nazev(2).Nazev = "tzbozi"
VZZ_nazev(3).Nazev = "nzbozi"
Ucet = 601000
For k = 0 To UBound(VZZ_nazev)
If IsArray(VZZ_nazev(k).Ucet) Then
For x = 0 To UBound(VZZ_nazev(k).Ucet)
If Ucet = VZZ_nazev(k).Ucet(x) Then
b = "OK"
End If
Next x
End If
Next k
End Subcitovat
eLCHa(20.2.2016 18:17)#030257 @elninoslov
A co Collection?
citovat
elninoslov(20.2.2016 18:38)#030259 Samozrejme, nieje problém. Tu sa ale asi výhody Collection nevyužijú (napr pridávanie, odoberanie prvkov). Preto iba jednoduché pole Typov. Aj tak nevieme, čo to presne je, a na čo to presne je.
EDIT: Inak vôbec sa mi nepozdáva premenná Ucet. Ak je to skutočne časť čísla bankového účtu, tak rozhodne nie Long, ale string.
citovat
eLCHa(20.2.2016 18:55)#030262 Celý ten kód je divný, proto jsem jen napsal, co je špatně a nenavrhoval lepší cestu.
Výhodou Collection je, že každému prvku můžete přiřadit Key a podle Key pak volat. Takto to řeším já, když potřebuji "pole s pojmenovanými indexy".
citovat