使用变量将范围从一张纸复制到另一张纸

时间:2019-09-12 22:27:40

标签: excel vba range

这是我的代码:

If AssociateNameArray(ArrayLoop) = ThisWorkbook.Sheets(i).Cells(3, CompareCounter).Value Then
    If i = 2 Then
        Sheets(i).Range(CompareCounter & "6:" & CompareCounter & "12").Copy Destination:=Sheets(1).Range((ArrayLoop + 4) & "2")
        Sheets(i).Range(CompareCounter & "14:" & CompareCounter & "28").Copy Destination:=Sheets(1).Range((ArrayLoop + 4) & "9")
        CompareCounter = CompareCounter + 1
    End If
End If

它给

  

1004错误

基本上,我正在遍历一个设置范围,其中CompareCounter是列号。 (愚蠢的名字,我知道)我在数组中有名字,它正在将数组的值与一行中的单元格进行比较,当找到匹配项时,它会将设置范围复制到特定位置的主页列上行。该人员的列号应为ArrayLoop + 4,因为它们从E列开始。我将遍历每个工作表(i),当找到匹配项时,我将获取该工作表中的范围并将其复制到主页。

1 个答案:

答案 0 :(得分:0)

这是导致1004错误的原因:Range((ArrayLoop + 4) & "2")

如果ArrayLoop为4,则将其求值为某个值后,它看起来像Range(52),并且它不是有效范围,返回1004

通常,尝试使用 F8 逐步调试代码,并始终查看变量的值。