View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
HartJF HartJF is offline
external usenet poster
 
Posts: 7
Default Pass array of sheet names to subroutine

That would insert a row on one sheet at a time. My problem is that, since
Sheet2 is an accumulating cover sheet, if I don't insert as a group, the
summation formula is destroyed. Sheet2!C15 contains =sum(Sheet3:SheetN!C15),
where SheetN is the final sheet. Inserting a row at Sheet3!5:5 makes
Sheet2!C15 contain =#REF! I think I need to group Sheet3:SheetN and then
insert row 5. I need this in a subroutine because the statement after the
calling statement is:

sbrInsertRow "Sheet2"

"JLGWhiz" wrote:

try sbrInsertRow(avarSheet(i))

"HartJF" wrote:

No luck with sbrInsertRow(avarSheet), sbrInsertRow(avarSheet()), or
sbrInsertRow avarSheet()

"JLGWhiz" wrote:

Disregard that. Did you try it with Parentheses

sbrInsertRow(avarSheet)

"HartJF" wrote:

I want to insert a row in one or more adjacent sheets. I have written a
subroutine:

Sub sbrInsertRow(ParamArray avarSheetSub() As Variant)
With Worksheets(avarSheetSub())
.Select
.Rows(5).Insert
... formatting instructions ...
End With
End Sub

I call the subroutine, sending the names of Sheet 3 to the end:

intSheet=Worksheets.Count-3
For i = 0 To intSheet
avarSheet(i) = Worksheets(i + 3).Name
Next
sbrInsertRow avarSheet

At a breakpoint on the calling line, debug.print correctly enumerates
avarSheet, but at a breakpoint on the With Worksheets line of the sub,
avarSheetSub is empty.

I know I've done something wrong, but what?!?