< návrat zpět
MS Excel
Téma: Zjednoduseny kod makra
Zaslal/a steinhubl 27.7.2011 23:27
Chcel by som sa spytat na zjednodusenie naprogramovaneho makra. Na liste1 mam v stlpci A 16384 dat z ktorych chcem spravit FFT (Fourierova analyza). Nakolko Excel ponuka tuto moznost v Data Analysis maximalne pre 4096 cisiel, vytvoril som si v Excely makro nahravanim a to tak, ze som najprv zobral zo stlpca A1:A4096 hodnoty, previedol som FFT a vysledok som zapisal do bunky B1:B4096, potom som opat zobral zo stlpca A hodnoty z buniek A4097:A8193 a vysledok zapisal do buniek C1:C4096.... Takto to pokracovalo az po bunku A16384.
V nahranom makre mi vytvorilo zdrojovy kod presne podla mojich kliknuti mysou. Chcem sa spytat, ci by sa toto moje makro dalo zjednodusit, napriklad cez prikaz For Each... alebo len jednoducho cez prikaz For, cize by som vytvoril cyklus. Verim ze pre zdatnych VBA programatorov bude toto jednoducha zalezitost. Dakujem za vsetky typy
steinhubl(28.7.2011 9:39)#005611 Zabudol som prilozit kod makra nahravanim tak ho prikladam. Za Vase odpovede vopred dakujem
Příloha: 5611_zosit1.zip (102kB, staženo 22x) citovat
Roman(28.7.2011 12:42)#005613 Zkus:
Sub Makro1()
For i = 1 To 4
Application.Run "ATPVBAEN.XLAM!Fourier", ActiveSheet.Range.Offset((i - 1) * 4096, 0).Resize(4096, 1) _
, ActiveSheet.Range.Offset(0, i), False, False
Next i
End Subcitovat
steinhubl(28.7.2011 16:30)#005615 dakujem za typ, vyskusal som to hned ale nefunguje mi to zial. Ked otvorim VBA prostredie a dam spustit makro tak mi vypise chybu Run-time error 450.
Za dalsie typy vopred dakujem
citovat
Roman(29.7.2011 10:22)#005630 Máš plnou pravdu chybička se vloudila a já to netestoval takže"
Sub test()
For i = 1 To 4
Application.Run "ATPVBAEN.XLAM!Fourier", ActiveSheet.Range("A1").Offset((i - 1) * 4096, 0).Resize(4096, 1) _
, ActiveSheet.Range("A1").Offset(0, i), False, False
Next i
End Subcitovat
steinhubl(29.7.2011 10:55)#005631 Velmi pekne dakujem Roman, velmi si mi pomohol, je to presne to co potrebujem. Ak by si mal nahodou chut a vedel by si mi odpovedat na moj dalsi dotaz, ktory som poslal 28.07.2011 "medzikroky makra" bol by som ti velmi povdacny.
citovat