How can I call Fourier Analysis from a Visual Basic macro?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I recorded a macro in Excel that included using the Fourier Analysis tool
from the VBA Analysis ToolPak, but when I ran the macro, I got an error
saying the input range was not defined. When I recorded the macro, I had
entered an input range, so I examined the macro code. I didn't see my input
range in the code, but I realised I didn't know how the Fourier Analysis
application had to be called from Visual Basic anyway.

The macro recorder had inserted the line:
Application.Run "ATPVBAEN.XLA!Fourier", , , False, False
for forward Fourier transformation, and
Application.Run "ATPVBAEN.XLA!Fourier", , , True, False
for inverse Fourier transformaiton.

Can anyone who has used the Fourier Analysis tool from Visual Basic help me
by describing the syntax for calling Fourier Analysis (ATPVBAEN.XLA!Fourier)?

Many thanks.
 
It looks like it goes in this order:
input_Range,output_range,inverse,labels_in_first_row

When I recorded a macro and selected a couple of ranges, I got:

Application.Run "ATPVBAEN.XLA!Fourier", ActiveSheet.Range("$A$1:$A$8"), _
ActiveSheet.Range("$B$1:$F$7"), False, False
 
Thanks, Dave. That worked. In fact, I tried putting Range(...) into the two
spaces in the calling line, but the syntax I used wasn't what you put in your
reply, so it seems to matter how Range is used.
 
Also note that the Fourier program only looks at the upper left corner of
the output range address.

Sub SmallDemo()
Const FFT As String = "ATPVBAEN.XLA!Fourier"
Const Forward As Boolean = False

Run FFT, [A1:A8], [B1], Forward
End Sub

:>)
 
Back
Top