VBA GoalSeek Loop问题
问题描述:
我是VBA的新手,在我的第一个代码中,我尝试通过2列(P和J)来实现GoalSeek函数的循环。VBA GoalSeek Loop问题
该组细胞是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
您好, 感谢您的回复, 基本上这行的函数变量求解: 范围(将细胞((i)中, “P”))GoalSeek目标:= 0,ChangingCell: = Range(Cells((i),“J”)) 对于一个简单单元格,它是这样的: 范围(“P2”)GoalSeek目标:= 0,ChangingCell:=范围(“J2”) 代码工作的简单单元格。 我不想将该值设置为1.我想要使用目标搜索函数更改单元格(变量),直到目标单元格(函数)通过迭代达到特定值(此处为0)。 –
查看我的更新版本。 –
它的工作!非常感谢 ! –