0
我把这个写在vba的sub中,但是我不知道如何在循环的外面得到 final_array。我想要转置到工作表或保存到全局多维数组。我怎样才能传递一个数组在其外循环?
Dim lent As Long
Dim end_ct As Long
end_ct = 0
Dim final_array() As Variant
ReDim Preserve final_array(11)
final_array(0) = Range("B2").value
final_array(1) = Range("B3").value
j = 8
'Debug.Print final_array(0)
'Debug.Print final_array(1)
For lent = 2 To 11 Step 1
If lent Mod 2 = 0 Then
ReDim Preserve final_array(11)
final_array(lent) = end_pt(end_ct) - strt_pt(end_ct)
end_ct = end_ct + 1
'Sheets("SingleEquityHistoryHedge").Cells(47, lent + 1).value = final_array(lent)
Else
'gets average over pattern period
Dim avg_rng As Range
Set avg_rng = Sheets("SingleEquityHistoryHedge").Range(Cells(strt_pt(end_ct), j), Cells(end_pt(end_ct) - 1, j))
'Debug.Print sum_rng
Dim avg_value As Double
avg_value = avgVal(avg_rng)
ReDim Preserve final_array(11)
final_array(lent) = avg_value
' Sheets("SingleEquityHistoryHedge").Cells(47, lent + 2).FormulaArray = _
' "=AVERAGE(IF(ISNUMBER(" & avg_rng.Address & ")," & avg_rng.Address & "))"
j = j + 1
End If
' Debug.Print final_array(lent)
' Debug.Print final_array
' If lent = 11 Then
' Range("A" & pos).Select
' Application.WorksheetFunction.Transpose (final_array)
' End If
Next lent
我的目标是能够打印final_array环路以外。任何帮助将非常感激。
什么不起作用?既然你在循环开始之前声明了final_array,你应该可以在循环之后很好地访问它。 – squillman
当我尝试使用Debug.Print final_array或Application.Transpose(final_array)它不返回任何东西....我打印数组的所有单个元素,所以我知道值在那里,只是不知道为什么我不能转置它外环 – googlekid