Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5301 / 13646 ツリー ←次へ | 前へ→

【51611】ちかちかして止まらない mariko 07/9/27(木) 11:42 質問[未読]
【51615】Re:ちかちかして止まらない ぱっせんじゃー 07/9/27(木) 12:04 発言[未読]
【51634】Re:ちかちかして止まらない Kiyoko 07/9/27(木) 15:55 お礼[未読]
【51616】Re:ちかちかして止まらない inoue 07/9/27(木) 12:28 発言[未読]
【51635】Re:ちかちかして止まらない Kiyoko 07/9/27(木) 15:59 発言[未読]

【51611】ちかちかして止まらない
質問  mariko  - 07/9/27(木) 11:42 -

引用なし
パスワード
   通常は「0」で設定しておき・・・、
条件が整ったときは、合計をしたいのです。
下のコードを作成したのですが、
条件が整っても、ちかちかして止まりません。
どこを直せばよいのでしょうか?
3列のどこかに「借入金」という文字と、かつ20列目に何かデータ(文字=営業所名)があれば、9列目の数字をN3に『合計』させたいのです。
20列目にデータが無いときはN3のセルには「0」を表示しておきたいのです。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim R As Range
 Dim MyR As Range
  Set MyR = Range("C8:C250")
  Range("N3").Value = 0
 For Each R In MyR
  If R = "借入金" And R.Offset(, 17).Value <> "" Then
   Range("N3") = Application.WorksheetFunction.Sum(R.Offset(, 9))
  End If
 Next
End Sub

【51615】Re:ちかちかして止まらない
発言  ぱっせんじゃー  - 07/9/27(木) 12:04 -

引用なし
パスワード
   イベントの無限連鎖になっているのでは?
↓のようにしてみてください。

  Application.EnableEvents = False
  '処理
  Application.EnableEvents = True

【51616】Re:ちかちかして止まらない
発言  inoue E-MAIL  - 07/9/27(木) 12:28 -

引用なし
パスワード
   > Range("N3") = Application.WorksheetFunction.Sum(R.Offset(, 9))
これでは最後の行の値しか入らないのでは?

【51634】Re:ちかちかして止まらない
お礼  Kiyoko  - 07/9/27(木) 15:55 -

引用なし
パスワード
   ▼ぱっせんじゃー さん:
早速ご回答ありがとうございます。

>イベントの無限連鎖になっているのでは?
>↓のようにしてみてください。
>
>  Application.EnableEvents = False
>  '処理
>  Application.EnableEvents = True

ありがとうございました。直りました。

【51635】Re:ちかちかして止まらない
発言  Kiyoko  - 07/9/27(木) 15:59 -

引用なし
パスワード
   ▼inoue さん:
>> Range("N3") = Application.WorksheetFunction.Sum(R.Offset(, 9))
>これでは最後の行の値しか入らないのでは?
あっ、そうですね・・・これでは条件の合った最終行だけが対象ですね。
たまたま一箇所だけでしたので、問題が無く済んでいますが、複数行が
対象になれば、合算が出来ず、問題になりますね。
もう少し考えて見ます。

5301 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free