这是我的代码:
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),当找到匹配项时,我将获取该工作表中的范围并将其复制到主页。
答案 0 :(得分:0)
这是导致1004错误的原因:Range((ArrayLoop + 4) & "2")
如果ArrayLoop
为4,则将其求值为某个值后,它看起来像Range(52)
,并且它不是有效范围,返回1004
。
通常,尝试使用 F8 逐步调试代码,并始终查看变量的值。