【发布时间】:2017-05-16 20:57:56
【问题描述】:
我正在尝试:
从工作簿的第一个工作表中获取数据范围,并将这些数据传递到多个一维数组中。
将这些数组中的值输出到同一工作簿的第二个工作表中。
这是我的问题:
如果工作表 1 是活动工作表,宏只会将数组中的所有值输出到工作表 2。如果工作表 2 处于活动状态,则没有输出。
此外,当我输出 LBound 和 UBound 来检查数组大小时,它们都为 1,而它应该是 1 到 40。
最后,如果我尝试从数组中输出第一个值,则会收到“超出范围”错误。
代码如下:
Sub M1_Run()
' Turns off screen updating and workbook calculations
'Application.ScreenUpdating = False
'Application.Calculation = xlCalculationManual
' Clears any previous values from output sheet
Worksheets(2).Range("A10:BZ50011").Clear
' Declares Variables to Use
Dim rando As Double
Dim runNum As Integer
With ThisWorkbook.Worksheets(1)
' Declare an array to hold a variable number of values
Dim RevExpFV() As Variant
Dim RevExpBase() As Variant
Dim RevExpDist() As Variant
Dim RevExpMin() As Variant
Dim RevExpMax() As Variant
Dim RevExpMean() As Variant
Dim RevExpSD() As Variant
' Read values into arrays
RevExpFV = Range("AG3:BT3")
RevExpBase = Range("AG5:BT5")
RevExpDist = Range("AG6:BT6")
RevExpMin = Range("AG8:BT8")
RevExpMax = Range("AG9:BT9")
RevExpMean = Range("AG11:BT11")
RevExpSD = Range("AG12:BT12")
' Test Output
'Range("AF21:BS21") = RevExpDist
End With
' Test Outputs
' Worksheets(1).Range("AF20:BS20") = RevExpDist
Worksheets(2).Range("A10:AN10") = RevExpDist
Worksheets(2).Range("A11") = LBound(RevExpDist)
Worksheets(2).Range("B11") = UBound(RevExpDist)
' Script out of range error
'Worksheets(2).Range("A12") = RevExpDist(1)
End Sub
我很欣赏任何想法。
【问题讨论】: