在macros中使用公式中的inputvariables

我想在公式中使用用户input,如下所示:

Sub example() Dim StockDays As Integer StockDays = InputBox(Prompt:="How many days?") Range("AG2").FormulaR1C1 = "=ROUNDUP(RC[-6]*" & StockDays & "/90, 0)" Range("AG2").Select Selection.AutoFill Destination:=Range(Cells(2, 33), Cells(1500, 33)) End Sub 

运行时,上面的代码会在ROUNDUP行中引发错误。

运行时错误1004。
应用程序定义或对象定义的错误。

我认为问题与variablesStockDays

我该如何安排代码才能使其工作?

我已经评论了代码,所以你不应该有任何理解它的问题:)

 Option Explicit Sub example() Dim StockDays As Integer '~~> Type:=1 will ensure that the user enters only numbers StockDays = Application.InputBox(Prompt:="How many days?", Type:=1) '~~> No Need to autofill. You can fill all the range in one go Thisworkbook.Sheets("Sheet1").Range("AG2:AG1500").FormulaR1C1 = _ "=ROUNDUP(RC[-6] * " & StockDays & "/ 90, 0)" 'OR this as mentioned in your comment Thisworkbook.Sheets("Sheet1").Range("AG2:AG1500").FormulaR1C1 = _ "=ROUNDUP((RC[-6]* " & StockDays & "/90),0)" End Sub 

我认为这应该工作

范围(“AG2”)。FormulaR1C1 =“= ROUNDUP(RC [-6] * " & StockDays & " / " & StockDays & " )”

你所犯的错误是,你在哪里应用一个公式,但忘记用可变variables中的值replace你使用的variables