Excel / VBA - 错误1004使用目标搜索进行循环

时间:2013-11-09 15:05:33

标签: excel vba loops excel-vba

当我运行这段代码时,我设法填写我想要的表格,但是在最后一次迭代中,它在Range(“F”& r)...行上打破并给出error1004。我不明白为什么。确实运行它有效......但最后会产生错误。

Sub Stuff1()
    Dim r As Integer
    r = 37
    Do
        Range("F" & r).GoalSeek Goal:=0, ChangingCell:=Range("D" & r)
        r = r + 1
    Loop Until IsEmpty("E" & r)
End Sub

注意:我尝试过Do While Not,它的发生完全相同。 编辑:Excel 2013 btw

2 个答案:

答案 0 :(得分:2)

您需要更改IsEmpty函数以引用Range,而不是当前正在执行的字符串。

Loop Until IsEmpty(Range("E" & r))

此外,您应将r的数据类型更改为Long。如果您尝试访问32768行或更高版本,则会使用Integer获得溢出错误。

关于你的1004错误......

goalseek单元格必须具有引用您要操作的单元格的公式。我怀疑这是你错误的原因。

答案 1 :(得分:1)

Loop Until Range("E" & r)=""