こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

マクロが起動しない

For k = 1 To 1
For i = 10 To 25

Cells(i, 21).GoalSeek Goal:=750, ChangingCell:=Cells(i, 18)

'
Range("Z10:AA25").Select
Selection.Copy
Range("N10:O25").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Next
Next
'
End Sub

というマクロで
For i = 10 To 25
Range("Z10:AA25").Select
Range("N10:O25").Select
の3箇所の25という数字を26に書き換えると
Cells(i, 21).GoalSeek Goal:=750, ChangingCell:=Cells(i, 18)
の箇所がデバックを起こしてしまうのですが考えられる原因、または改善方法があったら教えてください。

投稿日時 - 2006-11-09 10:57:49

QNo.2527494

すぐに回答ほしいです

質問者が選んだベストアンサー

こんにちは。

>の3箇所の25という数字を26に書き換えると
たぶん、それは、U26 [= Cells(26, 21)]に数式が入っていないからでしょうね。

>デバックを起こしてしまうのですが考えられる原因、または改善方法

というよりも、GoalSeak そのものがマクロの一種だと思います。750だから、整数だと思いますが、マクロを使うのでしたら、わざわざ、GoalSeak は必要ないと思います。

それに、数学的(数式では)に求められないのでしょうか?

それから、これは、

>Range("Z10:AA25").Select
>Range("N10:O25").Select

なぜ、ループで同じものを繰り返すのでしょうか?GoalSeek で、仮に値が変わっても、これでは上書きされてしまうから、何重にもコピーしていることになると思います。単に、一つの行ではありませんか?

ループの中なら、

>Range("Z10:AA25").Select
  ↓
 Range("Z10:AA10").Offset(i - 10).Select

>Range("N10:O25").Select
  ↓
 Range("N10:O10").Offset(i - 10).Select

もしくは、ループの外で、たぶん、それは、

 Range("N10:O25").Value =Range("Z10:AA25").Value

と、値コピーすればよいと思います。

投稿日時 - 2006-11-09 13:56:27

お礼

回答ありがとうございます。
無事に解決いたしました。

投稿日時 - 2006-11-13 11:40:14

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-
-広告-
-広告-