VBA GoalSeek Loop问题

我是VBA的新手,在我的第一个代码中,我尝试通过2列(P和J)来实现GoalSeek函数的循环。

设置的单元格是P2然后P3然后是P4等等。而更改单元格是J2然后是J3等

我想从第2行迭代到第N行(数字N存储在单元格D1中)

这是我写的:

N = ThisWorkbook.Sheets("Reverse DCF").Range("D1").Value Dim i As Integer For i = 2 To N Range(Cells((i), "P")).GoalSeek Goal:=0, ChangingCell:=Range(Cells((i), "J")) Next i 

我收到一条错误消息:

“_Global”对象的“范围”失败。对不起,但我没有看到我的代码出现问题。

提前致谢 !

您可以使用没有范围的 单元格 。 这是一个工作的例子。 确保单元格N包含整数,并且P i到P N包含公式。

 Sub GoalSeekTest() Dim N As Integer Dim i As Integer N = ThisWorkbook.Sheets("Reverse DCF").Range("D1").Value For i = 2 To N If Cells(i, "P").HasFormula Then 'Messagebox for clarification MsgBox ("Formula cell: " & Cells(i, "P") _ .Address(RowAbsolute:=False, ColumnAbsolute:=False)) Cells((i), "P").GoalSeek Goal:=0, ChangingCell:=Cells((i), "J") Else MsgBox "Cell " & Cells(i, 1) _ .Address(RowAbsolute:=False, ColumnAbsolute:=False) _ & " has no formula - skipping this cell!", _ vbCritical, "Formula required!" End If Next i End Sub