< návrat zpět

MS Excel


Téma: medzikroky makra rss

Zaslal/a 28.7.2011 23:15

Chcel by som poziadat o pomoc pri skryti medzikrokov vypoctu makra. Som zaciatocnik vo VBA, doteraz som makra vytvaral nahravanim a nasledne jemnym doladovanim kodu. Jedna sa mi o nasledovne: Na Harku1 v stpci B a C mam 1024 dat z ktorych robim Fourierovu analyzu ktorej vysledky sa zapisu na harok 1 do stlpcov E a F. Nasledne na Harok3 v stlpci D mam vypocet, do ktoreho vstupuju hodnoty zo stlpcov E a F. Chcel by som vediet, ci existuje taka moznost vo VBA, ze po vykonani Fourierovej analyzy by sa mi jej vysledky nezapisovali do stlpcov E a F ale ostali by skryte niekde na pozadi alebo priamo vo vnutri VBA kodu a vysledkom tohto makra by boli len hodnoty v stlci D na Harok3. V prilohe posielam jednoduche makro (Module3 vo VBA). Potrebujem to kvoli tomu, ze tych Fourierovych analyz by som chcel robit aspon 30 a ked sa mi vysledky zapisuju do jednotlivych buniek, tak vypocet sa zbytocne predlzuje. Za vsetky vase odpovede vopred dakujem.

Příloha: zip5618_ueberlappung.zip (190kB, staženo 17x)
Zaslat odpověď >

#005633
avatar
Do Application.run se nedá vstoupit a tento program si dělá sám chybář sám naplňuje data, jsem přesvědčen, že maximum času věnuje zpracování dat ne přenosu, ten je velmi rychlý a neprotahuje čas. Udělal jsem test na 30 analýz a netrvá to tak dlouho
Sub Makro1_signal()

Application.ScreenUpdating = False
Sheets("Data").Select
Range("a2:ad1025").ClearContents
Range("a2:ad1025").Formula = "=rand() * 100 - 50"

Sheets("Hárok3").Select
Range("D2:D1025").ClearContents

Sheets("Hárok1").Select
Range("E2:ai1025").ClearContents

Dim i As Integer
For i = 0 To 29
'rozsah = Range(Cells(2, i + 1), Cells(4097, i + 1))
Application.Run "ATPVBAEN.XLAM!Fourier", Sheets("Data").Range("A2").Offset(0, i).Resize(1024, 1) _
, Sheets("Hárok1").Range("A2").Offset(0, i + 4), False, False
Next i



Sheets("Hárok3").Select
Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=(AVERAGE((IMABS(Hárok1!RC[1]))^2,(IMABS(Hárok1!RC[2]))^2))/(R2C2/2)"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D1025")
'Range("D2:D4097").Select
Application.ScreenUpdating = True

End Sub
citovat
#005638
avatar
Velmi pekne dakujem Roman za pomoc, vyskusal som si to s Tvojim kodom, prisposobil som si ho este na svoje podmienky a ide to celkom slusne. Este raz moja velka vdakacitovat

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse