Itreration

A

Alan Beban

Is there a standard way of handling something like
the following?

Function DeleteColumn(inputArray, ColumnNumber)
'. . .
If IsArray(ColumnNumber) Then
[Run the DeleteColumn function itself]
[on each column number in turn]
inputArray = arrOut
DeleteColumn = arrOut
Exit Function
End If
'. . .
End Function

I ended up creating a DeleteColumnAdjunct function
that is the same as the DeleteColumn function
except for name, and ran

Function DeleteColumn(inputArray, ColumnNumber)
'. . .
If IsArray(ColumnNumber) Then
For w = UBound(ColumnNumber) To LBound(ColumnNumber) Step -1
arrOut = DeleteColumnAdjunct(inputArray, ColumnNumber(w))
Next
inputArray = arrOut
DeleteColumn = arrOut
Exit Function
End If
'. . .

but can't help thinking I'm missing the forest for the trees.

Thanks,
Alan Beban
 
T

Tim Williams

I may be dense but I'm not following. What is this deleting?

And if the two functions are the same except for name then couldn't you just
use recursion and have the function call itself ?

Tim
 
A

Alan Beban

Tim said:
I may be dense but I'm not following. What is this deleting?

And if the two functions are the same except for name then couldn't you just
use recursion and have the function call itself ?

Tim
Thanks for replying. The function is removing a column, as indicated by
ColumnNumber, from the array that is input to the function; I left out
all the code except the relevant snippet.

What code snippet are you suggesting for "use recursion and have the
function call itself"?

Thanks again,
Alan Beban
Is there a standard way of handling something like
the following?

Function DeleteColumn(inputArray, ColumnNumber)
'. . .
If IsArray(ColumnNumber) Then
[Run the DeleteColumn function itself]
[on each column number in turn]
inputArray = arrOut
DeleteColumn = arrOut
Exit Function
End If
'. . .
End Function

I ended up creating a DeleteColumnAdjunct function
that is the same as the DeleteColumn function
except for name, and ran

Function DeleteColumn(inputArray, ColumnNumber)
'. . .
If IsArray(ColumnNumber) Then
For w = UBound(ColumnNumber) To LBound(ColumnNumber) Step -1
arrOut = DeleteColumnAdjunct(inputArray, ColumnNumber(w))
Next
inputArray = arrOut
DeleteColumn = arrOut
Exit Function
End If
'. . .

but can't help thinking I'm missing the forest for the trees.

Thanks,
Alan Beban
 
A

Alan Beban

Sorry. My previous response might have been too cryptic. When a single
number is input as the ColumnNumber parameter, the function (90% of
which is omitted from my original post) deletes from the input array the
specified column and returns the deleted version. In that case it skips
the below snippet because IsArray returns False. But if the input
ColumnNumber parameter is an array of numbers, the code is to delete all
the columns specified in that array of column numbers.

Thanks again.
Alan Beban

Tim said:
I may be dense but I'm not following. What is this deleting?

And if the two functions are the same except for name then couldn't you just
use recursion and have the function call itself ?

Tim


Is there a standard way of handling something like
the following?

Function DeleteColumn(inputArray, ColumnNumber)
'. . .
If IsArray(ColumnNumber) Then
[Run the DeleteColumn function itself]
[on each column number in turn]
inputArray = arrOut
DeleteColumn = arrOut
Exit Function
End If
'. . .
End Function

I ended up creating a DeleteColumnAdjunct function
that is the same as the DeleteColumn function
except for name, and ran

Function DeleteColumn(inputArray, ColumnNumber)
'. . .
If IsArray(ColumnNumber) Then
For w = UBound(ColumnNumber) To LBound(ColumnNumber) Step -1
arrOut = DeleteColumnAdjunct(inputArray, ColumnNumber(w))
Next
inputArray = arrOut
DeleteColumn = arrOut
Exit Function
End If
'. . .

but can't help thinking I'm missing the forest for the trees.

Thanks,
Alan Beban
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top