我在sheet1上有一个ActiveX按钮,但我的目标搜索公式是在sheet2上。当我运行它时,sheet2的N列中的单元格不会更改。任何人都可以为我修复代码吗?
Private Sub CommandButton1_Click()
With Worksheets("sheet2")
For J = 23 To 26
Cells(J, "o").GoalSeek Goal:=0, ChangingCell:=Cells(J, "n")
Next J
End With
End Sub
因为你永远不会使用他们所指的工作表来限定你的Cells
属性,所以他们默认引用ActiveSheet
(这将是你的按钮所在的工作表),所以你当前的代码相当于
Private Sub CommandButton1_Click()
Dim J As Variant
For J = 23 To 26
ActiveSheet.Cells(J, "o").GoalSeek Goal:=0, ChangingCell:=ActiveSheet.Cells(J, "n")
Next J
End Sub
您还在代码中包含了With Worksheets("sheet2")
块,但您从未使用它。
解决问题的最简单方法就是确保您确定要引用哪个工作表,并且因为您的代码中已经有一个With Worksheets("sheet2")
块,这意味着添加.
以指定您的With
对象是限定符您的每个Cells
属性:
Private Sub CommandButton1_Click()
With Worksheets("sheet2")
For J = 23 To 26
.Cells(J, "o").GoalSeek Goal:=0, ChangingCell:=.Cells(J, "n")
Next J
End With
End Sub