2016-08-18 18 views
-1

3セルをExcelに入れたいです。Excelでダイナミックセルの最大値と最小値を見つける方法

1つは動的で、最大と最小のセルです。

動的値がmaxになるたびに、最大セルを更新する必要があります。そうでなければ、最大値は前回の最大値を保持する必要があります。

同様に分についても同様である。

+1

"ダイナミックセル"が実際にリストであり、同じ列に新しい値をすべて入力しているだけなので(値の履歴を見ることができます)、これは本当に簡単です。単に '= MAX(A:A)'になり、minの値は '= MIN(A:A)'になります。 「ダイナミックセル」が常に同じセルで、新しい値を入力して以前の値を上書きする(値の履歴がないため)場合は、VBA、特に[Worksheet_Changeイベント]( https://msdn.microsoft.com/en-us/library/office/ff839775.aspx)。 – tigeravatar

+0

後者の場合、データがリフレッシュされるたびに動的セルが上書きされます。あなたはVBAを使用して、より具体的にはWorksheet_changeイベントを使用して言及しましたが、あなたはそれを行う方法を教えてくれますか? –

答えて

0

VBA = Visual Basic for Applicationsこれにアクセスするには、Excelを開き、Alt + F11を押します。 Visual Basic Editor(VBE)で、ダイナミックセルを持つシート名をダブルクリックします。この例では、単なるSheet1です。そのシート名をダブルクリックすると、右側にコードウィンドウが開きます。コードウィンドウの上部にある2つのドロップダウンを使用してワークシートを選択し、ワークシートイベントが必要であることを伝えるために「変更」をクリックします(Worksheet_Changeイベントが必要なことを伝えるために、Private Sub Worksheet_Change(ByVal Target as Range)という行が自動的に作成されます)。このような何かを見て:それは絵と一致するように

enter image description here

それからちょうどこのコードをコピーして、Private Sub...End Subラインの間にそれを貼り付けます。

Dim rDynamic As Range 
Dim rMax As Range 
Dim rMin As Range 

Set rDynamic = Me.Range("A1") 
Set rMax = Me.Range("B1") 
Set rMin = Me.Range("C1") 

If Not Intersect(Target, rDynamic) Is Nothing Then 
    If rDynamic.Value < rMin.Value Then rMin.Value = rDynamic.Value 
    If rDynamic.Value > rMax.Value Then rMax.Value = rDynamic.Value 
End If 

そしてそれをテストを保存するにはワークブックには、.xlsmファイルを使用する必要がありますマクロを有効にする必要があります(Excelでは、ブックの保存、終了、および再開後にマクロを有効または無効にする必要があります)。

+0

は魅力のように動作します...歓声とありがとうございます。 –

関連する問題