目标寻求宏观,改变细胞参考不是硬性价值

时间:2015-11-03 22:15:45

标签: excel vba excel-vba

我正在尝试为我的excel模型制作目标搜索宏。是否有可能创建一个宏ChangingCell不是一个硬值,而是一个引用硬值的相等公式。

Range("D1").GoalSeek Goal:=0.17, ChangingCell:=Range("D424")

因此,在这种情况下,单元格D424将=另一个具有硬值的单元格。我可以将ChangingCell直接设置为D424的原因是,更改单元格的目标搜索参考会根据文件上的各种选择而更改。

2 个答案:

答案 0 :(得分:1)

您可以使用单元格D424上的DirectPrecedents方法为要更改的单元格创建范围对象。这是假设D424仅指一个细胞。

Sub MyGoalSeek()

Dim precedentRange As Range

Set precedentRange = Range("D424").DirectPrecedents

Range("D1").GoalSeek Goal:=0.17, ChangingCell:=precedentRange

End Sub

答案 1 :(得分:0)

Public Function GoalSeek(Goal As Double, ChangingCell As Range) As Double
   Dim changingCellVal As Double

   'Ensure the user only passes in a single cell, not a range of cells
   if(ChangingCell.Rows.Count = 1 And ChangingCell.Columns.Count = 1) Then
       changingCellVal = ChangingCell.Value
   end if

   'Calculate GoalSeek
   GoalSeek = 0
End Function