Vba “范围单元格抛出”;RT错误1004“;

Vba “范围单元格抛出”;RT错误1004“;,vba,excel,Vba,Excel,我试图用一个变量来定义一个范围,当我试图得到几百只股票的CoVar矩阵时,我使用了下面的代码。但是,系统抛出RT错误1004 Sub CoVar_Calc() Dim i As Integer Dim j As Integer Dim ArrA As Range Dim ArrB As Range i = 1 j = 1 For i = 1 To 487 ArrA = Range(Sheets(2).Cells(7 + i, 2), Sheets(2).Cells(7 + i, 2

我试图用一个变量来定义一个范围,当我试图得到几百只股票的CoVar矩阵时,我使用了下面的代码。但是,系统抛出RT错误1004

Sub CoVar_Calc()

Dim i As Integer
Dim j As Integer
Dim ArrA As Range
Dim ArrB As Range

i = 1
j = 1

For i = 1 To 487
    ArrA = Range(Sheets(2).Cells(7 + i, 2), Sheets(2).Cells(7 + i, 254))
    For j = 1 To 487
        ArrB = Range(Sheets(2).Cells(7 + j, 2), Sheets(2).Cells(7 + j, 254))

        Sheets(3).Cells(j + 1, i + 1) = Application.WorksheetFunction. _
        CoVar(ArrA, ArrB)
    Next j
Next i

End Sub
当我第一次使用以下代码运行时

For i = 1 To 487
    Set ArrA = Sheets(2).Range(Sheets(2).Cells(7 + i, 2), Sheets(2).Cells(7 + i, 254))
For j = 1 To 487
    Set ArrB = Sheets(2).Range(Sheets(2).Cells(7 + j, 2), Sheets(2).Cells(7 + j, 254))

    Sheets(3).Cells(j + 1, i + 1) = _
    Application.WorksheetFunction. _
    CoVar(ArrA, ArrB)
Next j
Next i

一切都很好,但第二次尝试运行它时,它给了我相同的RT 1004错误消息。在这两次运行中,我没有对工作簿做太多更改,但我打开了一些其他启用vba的工作簿。

所有
范围
单元格
都需要与它们的父级一起鉴定。所以,
ArrA=Range(第(2)页。单元格(7+i,2),第(2)页。单元格(7+i,254))
应该是
ArrA=Sheets(2)。单元格(7+i,2),第(2)页。单元格(7+i,254))
。下一步也应该这样做。我刚才看到您需要设置所有范围<代码>设置ArrB=…使用“With…End With”块来确保所有引用匹配会更简单。如下所示:
与Sheet2:Set ArrA=.Range(.Cells(7+i,2),.Cells(7+1254)):以
结束所有的
范围
单元格
需要与其父级一起限定。所以,
ArrA=Range(第(2)页。单元格(7+i,2),第(2)页。单元格(7+i,254))
应该是
ArrA=Sheets(2)。单元格(7+i,2),第(2)页。单元格(7+i,254))
。下一步也应该这样做。我刚才看到您需要设置所有范围<代码>设置ArrB=…使用“With…End With”块来确保所有引用匹配会更简单。如下所示:
With Sheet2:Set ArrA=.Range(.Cells(7+i,2),.Cells(7+1254)):以