在Excel VBA模块中使用GoalSeek功能
有人能帮我理解为什么第一个子项有效,而第二个子项给出了无效的引用吗在Excel VBA模块中使用GoalSeek功能,vba,excel,Vba,Excel,有人能帮我理解为什么第一个子项有效,而第二个子项给出了无效的引用吗 Sub tester1() Range("Q5").GoalSeek goal:=2000000, changingcell:=Range("P5") End Sub Sub tester3() Dim rngRow As Range For Each rngRow In Range("P5").Rows rngRow.Cells(0, 1).GoalSeek goal:=2000
Sub tester1()
Range("Q5").GoalSeek goal:=2000000, changingcell:=Range("P5")
End Sub
Sub tester3()
Dim rngRow As Range
For Each rngRow In Range("P5").Rows
rngRow.Cells(0, 1).GoalSeek goal:=2000000, changingcell:=rngRow.Cells(0, 0)
Next rngRow
End Sub
提前感谢。单元格(0,1)
和单元格(0,0)
无效-行和列应大于0
Range("A1") = Cells(1, 1) 'Cells(row, col)
Range("A2") = Cells(2, 1)
Range("B1") = Cells(1, 2)
Range("B2") = Cells(2, 2)
用这个测试:
Sub tester3()
Dim cel As Range
For Each cel In Range("Q5:Q10")
cel.GoalSeek Goal:=2000000, ChangingCell:=cel.Offset(0, -1)
Next rngRow
End Sub
偏移量可能会混淆:
范围(“B2”)。偏移量(-1,-1)
是范围(“A1”)
谢谢。使用正确的单元格引用仍然返回无效引用:rngRow.Cells(5,17)。GoalSeek目标:=2000000,changingcell:=rngRow.Cells(5,16)。单元格(5,17)是一个公式,单元格(5,16)是一个值。cel.GoalSeek目标:=2000000,ChangingCell:=cel.Offset(0,1)
-这有效吗?我仍然得到无效的引用。Q5中的公式是UDF。如果我手动更改P5中的值以找到解决方案,但不使用VBA,则效果很好。仅供参考,我正试图让它在一个单元格中工作,这样我就可以将其设置为计算500个单元格。下面的计算设置为手动还是自动?(选项卡公式->计算选项)