Stránka 1 z 1

Excel VBA - type mismatch

Napsal: 07 zář 2011 22:49
od dern
Zdravím,
mohl by mi někdo vysvětlil chybu v tomto jednoduchém kodu?

Kód: Vybrat vše

Sub test2()
 
  Dim g As Variant
  g(1, 1) = 5
  Range("A100") = g

End Sub


Díky
Dern

Re: Excel VBA - type mismatch

Napsal: 08 zář 2011 09:19
od Poki
Zdravim,
mozna jsem pomalejsi, ale co zamyslite zapisem g(1, 1)?

Re: Excel VBA - type mismatch

Napsal: 08 zář 2011 11:05
od Branscombe
Také jsem nepochopil zápis "g(1, 1)", tak jsem raději ani nekomentoval ... :D

Re: Excel VBA - type mismatch

Napsal: 08 zář 2011 14:01
od dern
Zdravím,
včera večer jsem měl zatměno. Dotaz jsem se snažil co nejvíce zestručnit. A díky tomu jsem na to nakonec po odelsání během minutky přišel.
Myšlenka je taková, že mám definovanou proměnnou "g" o které vím, že tam bude jednorozměrné pole, ale v danou chvíli netuším jaké a co uvnitř bude.

Zápisem g(1,1) = 5 jsem se snažil stručně zjednodušit myšlenku
např.
g(1,1) = proměnná1
g(1,2) = proměnná2
g(1,3) = proměnná3
atd.
...
a nakonec
record = g

přičemž od začátku je record předem definovaná oblast kam se budou hodnoty ukládat
např.
dim record as range
set record = rows(x)

Chyba je, že nejdřív než do g(1,1) budu cokoliv zadávat tak musím definovat že g bude jednorozměrné pole.

Celé je to pak součástí malé "databáze dat" kterou se snažím vytvořit. A do které budu vkládat data pomocí formuláře.
Zatím díky (dotazů bude asi ještě hodně jak se tím prokousávám :-))
Např. řešení desetinných čísel...

Re: Excel VBA - type mismatch

Napsal: 08 zář 2011 15:52
od guest
No hezky jste to semlel dohromady.. takže..

Dynamické pole:

Dim aPole
Dim aPole()

Při překlápění pole do buněk na listu nadefinujte levou horní buňku a s pomocí metody Resize oblast rozšiřte doprava a dolů (meze LBound a UBound aplikované na poli)