< návrat zpět

MS Excel


Téma: VBA Excel - Pomalé načítání dat do Listboxu rss

Zaslal/a 28.8.2015 9:48

Potřeboval bych poradit s kódem pro inicializaci Userformu, konkrétně se jedná o načítání dat do Listboxu, na mém počítači to načítá v řádu sekund, ale na jiném v řádu minut a to je už nepoužitelné pro praxi. Problém je asi v tom, že načítám data z jiného zavřeného sešitu. Poradí někdo kde by mohl být zakopaný pes? Díky


Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

ListBox1.ColumnCount = 7
ListBox1.ColumnWidths = "60;60;30;130;40;40;130"

Dim path As String
Dim workbookName As String
Dim worksheetName As String
Dim cell As String
Dim returnedValue As String
r = 5
c = 1
x = 0
path = "P:\Slozka\"
workbookName = "Soubor.xlsm"
worksheetName = "List"
cell = Cells(r, c).Address

returnedValue = "'" & path & "[" & workbookName & "]" & worksheetName & "'!" & Range(cell).Address(True, True, xlR1C1)
hodnota = ExecuteExcel4Macro(returnedValue)
Do While hodnota <> 0
ListBox1.AddItem
For y = 0 To 6
returnedValue = "'" & path & "[" & workbookName & "]" & worksheetName & "'!" & Range(cell).Offset(x, 0).Address(True, True, xlR1C1)
returnedValue1 = "'" & path & "[" & workbookName & "]" & worksheetName & "'!" & Range(cell).Offset(x, y).Address(True, True, xlR1C1)
hodnota1 = ExecuteExcel4Macro(returnedValue1)
If hodnota1 = 0 Then hodnota1 = ""

ListBox1.List(x, y) = hodnota1
Next y
hodnota = ExecuteExcel4Macro(returnedValue)
x = x + 1
Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
icon #026533
eLCHa
O formě zápisu pomocí R1C1 si zcela jistě něco dohledáte na internetu.

Na vysvětlenou
Do oblasti A1:A50 vkládám odkazy na oblast 'Cesta\[Nazev]List'!O11:O60"

Sloupec O je 15. sloupec v listu - proto absolutně C15
Začínám o 10 řádků níže - tedy relativně R[10]citovat
#026535
avatar
Diky, uz jsem googlil a podle vaseho vysvetleni to chapu spravne, ale nedopracoval jsem se k tomu jak dostat do listu na pozice A1:C100 hodnoty z druheho sesitu z bunek A5:C105, tzn. R5C1:R105:C3citovat
#026536
avatar
Oprava: R5C1 - R105C3citovat
icon #026537
eLCHa
=R[4]Co 4 řádky níže a stejné sloupce

edit:
Pokud je to pro Vás snazší - můžete použít i=R[4]C[0]citovat
#026541
avatar
No tak to jsem pochopil i zkousel spravne, ale nefungovalo to, sesit asi musi byt prepnuty do rezimu zapisu R1C1 je to tak?citovat
icon #026543
eLCHa
Nemusí - pokud zadáváte pomocí kódu a používáte FormulaR1C1

Pokud vkládáte vzorec do buňky ručně, tak samozřejmě musí.citovat
#026544
avatar
Tak jeste bych potreboval poradit proc nefunguje zapis se vzorcem


Range("A1:C150").FormulaR1C1 = "=IF('[nazev.xlsm]jmeno'!R[4]C=0,"",'[nazev.xlsm]jmeno'!R[4]C)"
citovat
icon #026547
eLCHa
4 uvozovky místo 2Range("A1:C150").FormulaR1C1 = "=IF('[nazev.xlsm]jmeno'!R[4]C=0,"""",'[nazev.xlsm]jmeno'!R[4]C)"citovat
#026549
avatar
Super diky!citovat
#026550
avatar
Mám upřímný (a zcela neosobní) dotaz: je opravdu nutné řešit nastavení těch vzorců v notaci R1C1? Podle mých zkušeností (s výjimkou několika málo situací, v nichž help přímo uvádí povinnost použít specifickou notaci) lze vzorec psát, "jak mi zobák narostl" a teprve na samém konci (v případě nezbytnosti) použít převod na R1C1. Domníval jsem se, že nedávná diskuse o automatických převodech notace vzorců do věci vnesla jasno. Je možné, že jsem něco podstatného přehlédl ?!?citovat

Strana:  « předchozí  1 2 3   další »

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