VBA - neustálé type mismatch   otázka

VB6/VBA

problém 1)

(kod je orientační, ten nekomenetujte, presny mam v praci, zajima me spis logika a procedury)

VBA (excel 2003)

'vytvořit nový list v sešitě

private sub novylist

dim novy as string

dim i as integer

dim existuje as boolean

existuje = false

novy = input box("zadejte nazev")

i = 0

for i = 0 to listboxseznamlistu.listcount

if Cstr(listboxseznamlistu.listindex(i)) = Cstr(novy) then

existuje = true

endif

next

if existuje = true then

elseif existuje = false

sheets.add.name = novy

endid

end sub

přidání error handleru mi nepomůže, protože excel automaticky vytvoří "list1" místo ba ynevytvořil na chybě nic.

vůbec mám problémy pochopit ty proměnné...... kdykolic se snažim využít porovnání s nějákým polem nebo obsahem listboxu, nikdy to nefunguje, budot to prostě nedělá nic (nenajde shodu) nebo hodí chybu type mismatch.

listbox byl nasycen _onload

dim y as integer

y = 0

for y = 0 to active.workbook.sheetscount

listbox additem = activeworkbook.sheets.name(y)

next y

existuje nějáká krácený metoda na zjištění, zda jedna variable je členem nějákého ovládacího prvku nebo pole?

nebo je jediná možnost kombinca boooleanske a for logiky jako mam vyse?

(presny kod mam v praci, mozna mam nekde drobne nepresnosti, ty prosim ignorujte, v praci to jelo bez bugu

velmi pěkné stránky

2) přidání řady do listboxu nebo pole

pokud jsou data v excelu ve sloupci, lze je snadno zadat do listboxu:

listbox.list = range(othersheet!A2:A100)

jak to same ale udelat pro rady se mi nepovedlo zprovoznit, listbox ukazoval blbosti

predpokladam ze musi byt pouzita nejaka metoda transpozice?

v soucasne dobe mam kod za ktery se stydim:

listbox.additem range(A1:A1)

listbox.additem range(B1:B1)

listbox.additem range(C1:C1)

....

určitě existuje lepší způsob

3)

dále mám

dim user as string

user = listbox.value

puvodně jsem chtel využít pole, což by byl mnohem lepší kod,

ale opět se objevil nenáviděný nepřítel type mismatch

z příkladů zde ani jinde to nemůžu pochopit, protože jsou moc jednoduché

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback