Excel VBA質問箱 IV

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

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


39774 / 76738 ←次へ | 前へ→

【42071】Re:教えてください
質問  nobu  - 06/8/31(木) 0:28 -

引用なし
パスワード
   ▼nobu さん:

>回答ありがとうございます。
>>こんな感じでいかがでしょう。
>>Private Sub Worksheet_Change(ByVal Target As Range)
>>  Dim x As String
>>  
>>  x = Range("A65536").End(xlUp).Row
>>  With Target
>>    If IsEmpty(.Value) Then Exit Sub
>>    If .Count > 1 Then Exit Sub
>>    If .Column = 2 Or .Column = 5 Or .Column = 8 Then
>>      Application.EnableEvents = False
>>       For i = 1 To x
>>        If Cells(i, 2).Value <> "" And Cells(i, 5).Value <> "" _
>>          And Cells(i, 8).Value <> "" Then
>>         Cells(i, 3).Value = Round(Cells(i, 1) - Cells(i, 2), 2)
>>         Cells(i, 6).Value = Round(Cells(i, 4) * Cells(i, 5), 2)
>>         Cells(i, 9).Value = Round(Cells(i, 7) / Cells(i, 8), 2)
>>        End If
>>       Next
>>      Application.EnableEvents = True
>>    End If
>>  End With
>>End Sub
H列入力後全て計算されるのですが
B列入力時C列計算答え E列入力時F列計算答え・・・・・
ということができますか?
よろしくお願いします。
> A    B    C     D    E     F    G  H     I
>500    200    300    150    100    15000    500  100     5
>300    100    200    120    50    6000    300  125       2.4
追伸ですが
下記のように修正してみたのですが
仮に1行目計算終了していてC1の300を一度消去した場合
2行目の100を入れると1行目の数値も再計算されまた300という
答えが返ってしまいます。これを行毎に計算させることは出来ないでしょうか
また、たとえば1行目の200をdeleteした場合300も消したいと思っているのですが
以下右項も同様です。いかがでしょうか。
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim x As String
 
  x = Range("A65536").End(xlUp).Row
  With Target
    If IsEmpty(.Value) Then Exit Sub
    If .Count > 1 Then Exit Sub
    If .Column = 2 Or .Column = 5 Or .Column = 8 Then
      Application.EnableEvents = False
       For i = 1 To x
        If Cells(i, 2).Value <> "" Then
         Cells(i, 3).Value = Round(Cells(i, 1) - Cells(i, 2), 2)
        If Cells(i, 5).Value <> "" Then
         Cells(i, 6).Value = Round(Cells(i, 4) * Cells(i, 5), 2)
         If Cells(i, 8).Value <> "" Then
         Cells(i, 9).Value = Round(Cells(i, 7) / Cells(i, 8), 2)
        End If
      
      Application.EnableEvents = True
    End If
   End If
   Next
  End If
  End With
End Sub
0 hits

【42043】教えてくださーい nobu 06/8/30(水) 11:45 質問
【42045】Re:教えてください かみちゃん 06/8/30(水) 12:28 発言
【42046】Re:教えてください nobu 06/8/30(水) 12:57 発言
【42066】Re:教えてください ponpon 06/8/30(水) 22:01 発言
【42070】Re:教えてください nobu 06/8/30(水) 23:37 発言
【42071】Re:教えてください nobu 06/8/31(木) 0:28 質問
【42072】Re:教えてください ponpon 06/8/31(木) 0:55 発言
【42073】Re:教えてください ponpon 06/8/31(木) 1:28 発言
【42075】Re:教えてください nobu 06/8/31(木) 1:51 発言
【42082】Re:教えてください ponpon 06/8/31(木) 10:32 発言
【42085】Re:教えてください ponpon 06/8/31(木) 12:46 発言
【42089】Re:教えてください nobu 06/8/31(木) 14:24 お礼

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