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 )

我不相信你会想要一个 VBA 解决方案,因为到目前为止你的算法都是 Excel 语法。但是,如果您确实想在 VBA 中执行此操作,则需要在 VBA 语法中找到算法并声明如下变量:

Dim myNumber As Integer

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