< návrat zpět

MS Excel


Téma: Range to Array rss

Zaslal/a 29.6.2017 8:32

Poradí někdo ?

Public My_Undo As Range
Public My_array() As Variant

Sub zapamatuj()
Set My_Undo = Selection
My_array = My_Undo ' zde to zkolabuje je-li vybrána
'pouze jedna buňka
End Sub

Zaslat odpověď >

#036746
elninoslov
Pr.:
Sub zapamatuj()
Dim X As Long, Y As Long
Set My_Undo = Selection
With My_Undo
X = .Rows.Count
Y = .Columns.Count
ReDim My_array(1 To X, 1 To Y)
If X = 1 And Y = 1 Then My_array(1, 1) = .Value2 Else My_array = .Value2
End With
End Sub

Ale to iba v prípade súmernej, spojenej oblasti. Ak je označená oblasť obsahujúca viac AREAS, treba si každú zvlášť v cykle EACH uložiť napr do COLLECTION.citovat
#036747
avatar
Dík, nakonec to bylo mnohem jednodušší

stačilo

Public My_array As Variantcitovat
#036748
elninoslov
To by som netvrdil. Ak bude bunka iba jedna, tak vo Vašom zápise, nebude premenná typu pole ! Záleží na tom, čo s tým chcete robiť ďalej. Ak nasleduje nejaké spracovanie tej premennej ako pole, tak ten Váš prípad musí zákonite hodiť chybu, lebo nemáte čo indexovať. Môj kód Vám urobí pole 1x1, s ktorým pracujete v následnom spracovaní rovnako ako s akýmkoľvek iným poľom napr. 100x10000. Skúste si to. Pozor na to.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje