dポイントプレゼントキャンペーン実施中!

Sub Macro2()
'
' Macro2 Macro
'

'
For i = 4 To 2670

Range("Y" & i).GoalSeek Goal:=440, ChangingCell:=Range("V" & i)
Next

End Sub
上記のマクロなのですが、Yが数式、目標値が440、変化するせるがVです。
ですが、マクロを実行しても作動しません。
なぜでしょうか。教えてください。

A 回答 (6件)

次のマクロを実行してみて下さい。


エラーが表示された行を確認して、エラーの原因を特定してください。

Sub CheckMacro()
Dim i As Long
On Error Resume Next
For i = 4 To 2670
Range("Y" & i).GoalSeek Goal:=440, ChangingCell:=Range("V" & i)
If Err.Number <> 0 Then
Range("V" & i) = "何らかのエラーがあります。"
Err.Clear
End If
Next
End Sub
    • good
    • 0
この回答へのお礼

vセルに、なんらかのエラーがありますの表示です。

お礼日時:2016/12/18 14:16

表示させるセルを間違えた・・・。



>>1004のエラー表示です。
セルY4 ~ Y2670 の中にセルVを使った計算式が無いものが有る。
と言う意味。
下の様にやって、エラーセルを特定させる。
On Error Resume Nextを入れて、1004のエラーダイアログが出ない様にしている。



For i = 4 To 2670
On Error Resume Next
Range("Y" & i).GoalSeek Goal:=440, ChangingCell:=Range("V" & i)
If Err.Number <> 0 Then
MsgBox "エラーがあります。 " & "Y" & i
Err.Clear
End If
Next
End Sub
    • good
    • 0

>>1004のエラー表示です。


セルY4 ~ Y2670 の中にセルVを使った計算式が無いものが有る。
と言う意味。
下の様にやって、エラーセルを特定させる。
On Error Resume Nextを入れて、1004のエラーダイアログが出ない様にしている。



For i = 4 To 2670
On Error Resume Next
Range("Y" & i).GoalSeek Goal:=440, ChangingCell:=Range("V" & i)
If Err.Number <> 0 Then
MsgBox "エラーがあります。 " & "V" & i
Err.Clear
End If
Next
End Sub
    • good
    • 0

エラーが表示されたV列のセルに、適当な数値を入力してみて下さい。

そうすると同じ行のY列に計算結果が表示されるはずなのですが、正しい結果が表示されましたか?正しい結果が表示されない場合は、その原因を調べて下さ。たぶん、それが根本原因です。

念のため言っておきますが、原因はfinaltida108070809さんが調べて下さいね。
    • good
    • 0
この回答へのお礼

正しい結果は、表示されます。

お礼日時:2016/12/18 15:53

Y4~Y2670のセルには、同じ行のV列を参照する数式が入っていますよね?


入っていれば動作すると思うのですが…。少なくとも私の環境では動作しましたよ!!
Y4~Y2670セルに入力されている数式をご提示ください。
    • good
    • 0
この回答へのお礼

=D4*112*0.95*0.961-W4*1.08-X4+V4 Y列に、数式が入り、V列が変化するセルです。アドバイスお願い致します。

お礼日時:2016/12/18 13:37

YにVの値を使った数式が入っていれば、それで正しく動く。


エラー表示されてないですか?
    • good
    • 0
この回答へのお礼

1004のエラー表示です。

お礼日時:2016/12/18 14:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!