0

この問題は次のデータを使用します。このデータは、B 列の範囲内の各セルに数式が含まれている固定セル範囲に対して手動で適応されます。基になる数式セルから最後のデータ セルを見つけることを目的としています。

与えられたデータ

数式範囲 B2:B11 内のデータを含む最後の数式セルを見つけ、その上の 4 つのセルでこの最後のセルから動的中央値を作成したいと思います。中央値はセル F6 に出力されます。結果は 9 です。これは動的な演習です。以下のコードを考えると、これを最も効率的に行う方法について何か考えはありますか?

Sub OutputMedian()

 Dim FunctionRange As Range

    'Represents a fixed range with function in B2:B11
    Set FunctionRange = Worksheets("Sheet1").Range("B2:B11")


   'Must start median calc from B9, as it's the last cell with function output data

   'Must store Median from last data cell, using 5 cell offset (see output from cell F2)

   'Must output the Final (e.g., median output of 9 here) to cell F6


End Sub
4

1 に答える 1

0

参照: Excel VBA: 選択した範囲内のデータを含む最後のセルを取得する

上記の質問からの@brettdjによる私の修正された回答( @varocarbasによって参照)。ありがとう!

動作しました!! 下の -4 Offset から 5 つの期間を設定して、正しい動的中央値を出力します。

Sub OutputMedian()

    Dim WS As Worksheet
    Dim rng1 As Range
    Dim rng2 As Range

    Set WS = Sheets("Sheet1")
    Set rng1 = WS.Columns("B:B").Find("*", Range("B1"), xlValues, , xlByRows, xlPrevious)
    Set rng2 = rng1.Offset(-4, 0)

    Dim FirstCell As String
    Dim LastCell As String

    FirstCell = rng2.Address(0, 0)
    LastCell = rng1.Address(0, 0)

    Dim CellResponse As String
    CellResponse = Evaluate("=median(" & FirstCell & ":" & LastCell & ")")
    Range("F6").Value = CellResponse


End Sub

オブジェクト (R1C1、Cells など) を動的関数の作成に使用するより良い方法、つまり、関数を連結文字列として Evaluate に渡さずに?

于 2013-11-04T20:13:29.700 に答える