0

OK, from all I've read passing an array from one sub to another is easy, but when I try to do it here the VBA Macro window pops open and my code stops.

I have tried to read everything else out there that tries to address this but no amount of defining or deleting of () helps.

Sub Costs__Max_Legal_Physical_Possession_Period(arrCosts__Physical_Possession(), arrCosts__Legal_Possession())
    arrQuarters = Range("Quarters_1to40")
    arrPhysical_Possession_Expenses_From_Quarter = Range("Costs.Physical_Possession_Expenses_From_Quarter")
    arrPhysical_Possession_Expenses_To_Quarter = Range("Costs.Physical_Possession_Expenses_To_Quarter")

    arrLegal_Possession_Expenses_From_Quarter = Range("Costs.Legal_Possession_Expenses_From_Quarter")
    arrLegal_Possession_Expenses_To_Quarter = Range("Costs.Legal_Possession_Expenses_To_Quarter")

    ReDim arrCosts__Max_Legal_Possession(1 To UBound(arrLegal_Possession_Expenses_To_Quarter, 1), 1 To UBound(arrQuarters, 2))

    For I = LBound(arrLegal_Possession_Expenses_To_Quarter, 1) To UBound(arrLegal_Possession_Expenses_To_Quarter, 1)
        For J = LBound(arrQuarters, 2) To UBound(arrQuarters, 2)
            arrCosts__Max_Legal_Possession(I, J) = WorksheetFunction.Max(arrCosts__Physical_Possession(I, J), arrCosts__Legal_Possession(I, J))
        Next
    Next
End Sub

FULL CODE

Sub Costs__Legal_Possession()    
    Dim arrQuarters, arrLegal_Possession_Expenses_From_Quarter, arrLegal_Possession_Expenses_To_Quarter, arrCosts__Legal_Possession, I, J

    arrQuarters = Range("Quarters_1to40")
    arrLegal_Possession_Expenses_From_Quarter = Range("Costs.Legal_Possession_Expenses_From_Quarter")
    arrLegal_Possession_Expenses_To_Quarter = Range("Costs.Legal_Possession_Expenses_To_Quarter")

    ReDim arrCosts__Legal_Possession(1 To UBound(arrLegal_Possession_Expenses_To_Quarter, 1), 1 To UBound(arrQuarters, 2))

    For I = LBound(arrLegal_Possession_Expenses_To_Quarter, 1) To UBound(arrLegal_Possession_Expenses_To_Quarter, 1)
        For J = LBound(arrQuarters, 2) To UBound(arrQuarters, 2)
            arrCosts__Legal_Possession(I, J) = (arrQuarters(1, J) >= arrLegal_Possession_Expenses_From_Quarter(I, 1)) * (arrQuarters(1, J) <= arrLegal_Possession_Expenses_To_Quarter(I, 1)) * 1
        Next
    Next
End Sub

Sub Costs__Physical_Possession()
    Dim arrQuarters, arrPhysical_Possession_Expenses_From_Quarter, arrPhysical_Possession_Expenses_To_Quarter, arrCosts__Physical_Possession, I, J

    arrQuarters = Range("Quarters_1to40")
    arrPhysical_Possession_Expenses_From_Quarter = Range("Costs.Physical_Possession_Expenses_From_Quarter")
    arrPhysical_Possession_Expenses_To_Quarter = Range("Costs.Physical_Possession_Expenses_To_Quarter")

    ReDim arrCosts__Physical_Possession(1 To UBound(arrPhysical_Possession_Expenses_To_Quarter, 1), 1 To UBound(arrQuarters, 2))

    For I = LBound(arrPhysical_Possession_Expenses_To_Quarter, 1) To UBound(arrPhysical_Possession_Expenses_To_Quarter, 1)
        For J = LBound(arrQuarters, 2) To UBound(arrQuarters, 2)
            arrCosts__Physical_Possession(I, J) = (arrQuarters(1, J) >= arrPhysical_Possession_Expenses_From_Quarter(I, 1)) * (arrQuarters(1, J) <= arrPhysical_Possession_Expenses_To_Quarter(I, 1)) * 1
        Next
    Next
End Sub

Sub Costs__Max_Legal_Physical_Possession_Period(arrCosts__Physical_Possession(), arrCosts__Legal_Possession())
    arrQuarters = Range("Quarters_1to40")
    arrPhysical_Possession_Expenses_From_Quarter = Range("Costs.Physical_Possession_Expenses_From_Quarter")
    arrPhysical_Possession_Expenses_To_Quarter = Range("Costs.Physical_Possession_Expenses_To_Quarter")

    arrLegal_Possession_Expenses_From_Quarter = Range("Costs.Legal_Possession_Expenses_From_Quarter")
    arrLegal_Possession_Expenses_To_Quarter = Range("Costs.Legal_Possession_Expenses_To_Quarter")

    ReDim arrCosts__Max_Legal_Possession(1 To UBound(arrLegal_Possession_Expenses_To_Quarter, 1), 1 To UBound(arrQuarters, 2))

    For I = LBound(arrLegal_Possession_Expenses_To_Quarter, 1) To UBound(arrLegal_Possession_Expenses_To_Quarter, 1)
        For J = LBound(arrQuarters, 2) To UBound(arrQuarters, 2)
            arrCosts__Max_Legal_Possession(I, J) = WorksheetFunction.Max(arrCosts__Physical_Possession(I, J), arrCosts__Legal_Possession(I, J))
        Next
    Next
End Sub
GSerg
  • 76,472
  • 17
  • 159
  • 346
Silverjman
  • 11
  • 5
  • Which window and on which line? – GSerg Feb 15 '19 at 15:44
  • Are you certain you didn't set a breakpoint by accident? – dwirony Feb 15 '19 at 15:50
  • I normally set a breakpoint at the end so I can see it in the Locals window but I get the same macros window even with no breakpoints – Silverjman Feb 15 '19 at 16:02
  • 3
    Sounds like a ghost breakpoint? Possible duplicate of https://stackoverflow.com/questions/2154699 ? – CLR Feb 15 '19 at 16:04
  • The abso very first line of the code up there Sub(....), when I take out the arrays I am trying to pass the code stops at the point I ref the array in the code below but it won't even start to run when as try to pass the arrays per above – Silverjman Feb 15 '19 at 16:05
  • CLR 24 I'm getting the macro window as opposed to the debug window/prompt, I've done so little coding in this file/ever it seems crazy I could already run into that same problem so soon – Silverjman Feb 15 '19 at 16:19
  • I just hit remove all breakpoint, compiled, and saved, hmmmm – Silverjman Feb 15 '19 at 16:20
  • In the sub `Costs__Max_Legal_Physical_Possession_Period...` I think you are `ReDim` an array that is not dimmed in that sub, `ReDim arrCosts__Max_Legal_Possession(` – jessi Feb 15 '19 at 22:08
  • Thanks, jessi but I've tweaked hat and it doesn't fix it. The macro window doesn't pop up if I don't try to pass an array. – Silverjman Feb 18 '19 at 09:53
  • All, thanks for all your suggestions. I've tried all of them to no avail. I've just combined the Subs into one Sub and it seems run fine, I supposed this cold be left open in case a solution is found down the road. – Silverjman Feb 18 '19 at 09:55

0 Answers0