2016-04-15 38 views
0

我在工作簿中记录了工作表的一个副本,并想通过可变速率对某个列中的数字进行建模。我的代码如下。我想通过输入框的结果乘以一个范围

Sub Inflate_Expense() 

    Dim Rate As Integer 
    Dim rngData As Range 

get_Rate: 
    Rate = Application.InputBox("Enter the rate", , , , , , , 1) 

     Set rngData = ThisWorkbook.Worksheets("Sheet1").Range("K103:K256") 
      rngData = Evaluate(rngData.Address & "*Rate") 

End Sub 

会发生什么事是我的工作表结果#NAME ?,其中IM的价值猜测是因为它是试图乘“*率”作为一个字符串,并且没有使用“速率”为结果输入框。

我知道代码工作,如果我用数字如更换率:

Set rngData = ThisWorkbook.Worksheets("Sheet1").Range("K103:K256") 
      rngData = Evaluate(rngData.Address & "*1.02") 

什么我在与被替换

Evaluate(rngData.Address & "*Rate") 

来匹配输入框结果的难度。

+1

尝试使用Evaluate(rngData.Address&“*”&Rate) –

+0

当然....!谢谢你,撞墙。 –

回答

0
Sub Inflate_Expense() 

Dim Rate As Variant 
Dim rngData As Range 

get_Rate: 
    Rate = Application.InputBox("Enter the rate", , , , , , , 1) 

     Set rngData = ThisWorkbook.Worksheets("Sheet1").Range("K103:K256") 
      rngData = Evaluate(rngData.Address & "*" & Rate) 

End Sub