あなたは、彼らが参照しているワークシートを使用して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")
ブロックを持っているので、参照してされているワークシートに修飾することを確実にするために、単純です
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
が、それは動作しませんどのように説明:あなたの
With
オブジェクトは、あなたのCells
プロパティのそれぞれの修飾子です。 – Alan@Alan - ボタンが押されたときに「ActiveSheet」なので、コードが目標1を実行しているという事実ですが、目標シーク式がsheet2上にあるという質問は、「動作しません」という意味ですこの場合は「目標シークは実行されていません」を指します。 – YowE3K