excel vba将命令链接到另一个工作表[关闭]

问题描述 投票:0回答:1

我在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
excel vba commandbutton
1个回答
2
投票

因为你永远不会使用他们所指的工作表来限定你的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
© www.soinside.com 2019 - 2024. All rights reserved.