1

指定された値に最も近い値を取得する式があります。つまり、

=SMALL(R1C1:R1C144,COUNTIF(R1C1:R1C144,""<"" &8)+1 )

8 に最も近い値になります。

直数「(8)」の代わりに変数を使いたい

私を助けてください。これは私の現在のコードです

Private Sub CommandButton1_Click() 
Dim col As Integer 
col = Me.TextBox1.Value
ActiveCell.FormulaR1C1 = "=SMALL($A$1:$EN$1,COUNTIF($A$1:$EN$1," < "&col)+1)"
End Sub 
4

2 に答える 2

1
Private Sub CommandButton1_Click() 
Dim col As Integer 
col = Me.TextBox1.Value
 'EDIT: .FormulaR1C1 should be .Formula   
ActiveCell.Formula = "=SMALL($A$1:$EN$1,COUNTIF($A$1:$EN$1,""<" & col & """)+1)"
End Sub 
于 2012-10-20T16:06:03.527 に答える
0

VBA とは別に Excel でこれを実行したい場合は、実際には変数は必要ありません。必要な値を別のセル (この例ではセル A5) に入れ、次のように数式でそのセルを参照する必要があります。

=SMALL(R1C1:R1C144,COUNTIF(R1C1:R1C144,""<"" & A5)+1 )

これまでのアルゴリズムはすべて Excel 構文であるため、VBA ソリューションが必要になるとは思いません。ただし、VBA で実行したい場合は、VBA 構文でアルゴリズムを見つけて、次のように変数を宣言する必要があります。

Dim myNumber As Integer

myNumber = 5          'put whatever number you want here
于 2012-10-19T18:48:31.630 に答える