如何在FormulaR1C1中使用变量?

时间:2012-10-19 14:21:02

标签: excel vba excel-vba

我有一个公式来获得与给定值最接近的值,即

=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 

2 个答案:

答案 0 :(得分:0)

如果你想在excel中与VBA分开,那么你真的不需要变量。你应该把你想要的任何值放在一个单独的单元格中(在这个例子中是单元格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

答案 1 :(得分:0)

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