“全局对象的方法范围”错误

下面是我试图运行的程序的格式。 这个想法是,用户在Excel中的列E到L中input值,该程序使用这些值来自动计算总和,并将其放入列M.

Sub Button12_Click() Dim JobTwoDescription() As String Dim JobOneJobTwoDescription() As String Dim Length() As Range Dim Width() As Range Dim Quantity() As Range Dim JobTwoTime() As Range Dim JobOneTime As Range Dim TotalTime As Range Dim i As Integer ReDim JobTwoDescription(i), JobOneJobTwoDescription(i), Length(i), Width(i), Quantity(i), JobTwoTime(i), Staples(i), Grid(i) For i = 1 to 10 JobTwoTime(i) = Range("Mi") JobTwoDescription(i) = Range("Ei") JobOneJobTwoDescription(i) = Range("Fi") Length(i) = Range("Ji") Width(i) = Range("Ki") Quantity(i) = Range("Li") JobOneTime = 0 'Initialize to zero TotalTime = 0 'Initialize to zero If LCase(JobOneDescription(i)) = "Option 1" Then JobOneTime(i) = A If LCase(JobOneDescription(i)) = "Option 2" Then JobOneTime(i) = B If LCase(JobOneDescription(i)) = "Option 3" Then JobOneTime(i) = C If LCase(JobTwoDescription(i)) = "Option4" Then If Length(i) + Width(i) <= X Then JobTwoTime(i) = + D* Quantity(i) ElseIf Length(i) + Width(i) > X & Length(i) + Width(i) <= Y Then JobTwoTime(i) = E* Quantity(i) ElseIf Length(i) + Width(i) > Y & Length(i) + Width(i) <= Z Then JobTwoTime(i) = F * Quantity(i) End If TotalTime(i) = JobTwoTime(i) + JobOneTime(i) ws.Range("Mi") = TotalTime(i) Next i End Sub 

“JobTwoTime(i)= Range(”Mi“)”出现错误。 我知道这是我的一个问题,但我无法弄清楚。

更改variables的声明。 你不需要Range对象的数组。

更改

 Dim JobTwoTime() As Range 

 Dim JobTwoTime As Double 

并改变

 JobTwoTime(i) = Range("Mi") 

 JobTwoTime = Range("M" & i).Value 

.Value不是必需的,因为它是Range对象的默认属性,但是我使用它。