ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   referring to worksheets by name in a vba fourier transform (https://www.excelbanter.com/excel-programming/357886-referring-worksheets-name-vba-fourier-transform.html)

JacksonRJones

referring to worksheets by name in a vba fourier transform
 
Hello. I was trying to call a fourier transform from vba and refer to the
worksheet the input data was on using a string variable. Here's the code:

Application.Run "ATPVBAEN.XLA!Fourier", sheetindex.Range("M15:M1038"),
sheetindex.Range("O15:O1037"), False, False

where sheetindex is a string type variable containing the name of the
worksheet. The following code works if the data is on sheet1:

Application.Run "ATPVBAEN.XLA!Fourier", sheet1.Range("M15:M1038"),
sheet1.Range("O15:O1037"), False, False

I get an error which says "invalid qualifier". I also tried setting the
active worksheet to the worksheet named by the string type variable and then
writing Activeworksheet.range to try and get the range right, but that didn't
work either. Any help would be greatly appreciated,

Jackson

Vasant Nanavati

referring to worksheets by name in a vba fourier transform
 
Your confusion arises because Sheet1 is the worksheet name as well as the
object itself. To use the worksheet name, you need to use something like:

Worksheets("sheetindex").Range("M15:M1038")


"JacksonRJones" wrote in message
...
Hello. I was trying to call a fourier transform from vba and refer to the
worksheet the input data was on using a string variable. Here's the code:

Application.Run "ATPVBAEN.XLA!Fourier", sheetindex.Range("M15:M1038"),
sheetindex.Range("O15:O1037"), False, False

where sheetindex is a string type variable containing the name of the
worksheet. The following code works if the data is on sheet1:

Application.Run "ATPVBAEN.XLA!Fourier", sheet1.Range("M15:M1038"),
sheet1.Range("O15:O1037"), False, False

I get an error which says "invalid qualifier". I also tried setting the
active worksheet to the worksheet named by the string type variable and
then
writing Activeworksheet.range to try and get the range right, but that
didn't
work either. Any help would be greatly appreciated,

Jackson




Niek Otten

referring to worksheets by name in a vba fourier transform
 
<Worksheets("sheetindex").Range("M15:M1038")

Probably without the quotes around sheetindex

--
Kind regards,

Niek Otten

"Vasant Nanavati" <vasantn AT aol DOT com wrote in message ...
Your confusion arises because Sheet1 is the worksheet name as well as the object itself. To use the worksheet name, you need to
use something like:

Worksheets("sheetindex").Range("M15:M1038")


"JacksonRJones" wrote in message
...
Hello. I was trying to call a fourier transform from vba and refer to the
worksheet the input data was on using a string variable. Here's the code:

Application.Run "ATPVBAEN.XLA!Fourier", sheetindex.Range("M15:M1038"),
sheetindex.Range("O15:O1037"), False, False

where sheetindex is a string type variable containing the name of the
worksheet. The following code works if the data is on sheet1:

Application.Run "ATPVBAEN.XLA!Fourier", sheet1.Range("M15:M1038"),
sheet1.Range("O15:O1037"), False, False

I get an error which says "invalid qualifier". I also tried setting the
active worksheet to the worksheet named by the string type variable and then
writing Activeworksheet.range to try and get the range right, but that didn't
work either. Any help would be greatly appreciated,

Jackson






Dana DeLouis

referring to worksheets by name in a vba fourier transform
 
Here's a general outline of something I use when working with Fourier
Analysis.
Note the use of " Worksheets(Sht)" where Sht is the name of the worksheet.

Sub Demo()
'// Dana DeLouis
Dim Sht As String
Dim DataIn, DataOut
Dim n, t

'// Functions He
Const FFT As String = "ATPVBAEN.XLA!Fourier"

'// Your string
Sht = "Sheet1"

Set DataIn = Worksheets(Sht).Range("M15:M1038")
Set DataOut = Worksheets(Sht).Range("O15")

'// Quick Check of input size...
n = DataIn.Cells.Count
t = Round(Log(n) / Log(2), 10)

If t - Int(t) < 0 Then
MsgBox "Wrong size of input..." & n
Exit Sub
End If

'// FFT Bug...Clear Output first
DataOut.Resize(n, 1).ClearContents
Run FFT, DataIn, DataOut
End Sub

--
HTH. :)
Dana DeLouis
Windows XP, Office 2003


"JacksonRJones" wrote in message
...
Hello. I was trying to call a fourier transform from vba and refer to the
worksheet the input data was on using a string variable. Here's the code:

Application.Run "ATPVBAEN.XLA!Fourier", sheetindex.Range("M15:M1038"),
sheetindex.Range("O15:O1037"), False, False

where sheetindex is a string type variable containing the name of the
worksheet. The following code works if the data is on sheet1:

Application.Run "ATPVBAEN.XLA!Fourier", sheet1.Range("M15:M1038"),
sheet1.Range("O15:O1037"), False, False

I get an error which says "invalid qualifier". I also tried setting the
active worksheet to the worksheet named by the string type variable and
then
writing Activeworksheet.range to try and get the range right, but that
didn't
work either. Any help would be greatly appreciated,

Jackson




Vasant Nanavati

referring to worksheets by name in a vba fourier transform
 
Thanks, Niek; my mistake.

Regards,

Vasant

"Niek Otten" wrote in message
...
<Worksheets("sheetindex").Range("M15:M1038")

Probably without the quotes around sheetindex

--
Kind regards,

Niek Otten

"Vasant Nanavati" <vasantn AT aol DOT com wrote in message
...
Your confusion arises because Sheet1 is the worksheet name as well as the
object itself. To use the worksheet name, you need to use something like:

Worksheets("sheetindex").Range("M15:M1038")


"JacksonRJones" wrote in
message ...
Hello. I was trying to call a fourier transform from vba and refer to
the
worksheet the input data was on using a string variable. Here's the
code:

Application.Run "ATPVBAEN.XLA!Fourier", sheetindex.Range("M15:M1038"),
sheetindex.Range("O15:O1037"), False, False

where sheetindex is a string type variable containing the name of the
worksheet. The following code works if the data is on sheet1:

Application.Run "ATPVBAEN.XLA!Fourier", sheet1.Range("M15:M1038"),
sheet1.Range("O15:O1037"), False, False

I get an error which says "invalid qualifier". I also tried setting the
active worksheet to the worksheet named by the string type variable and
then
writing Activeworksheet.range to try and get the range right, but that
didn't
work either. Any help would be greatly appreciated,

Jackson









All times are GMT +1. The time now is 05:06 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com