0

次のように、数式内でユーザー入力を使用したいと思います。

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。
アプリケーション定義またはオブジェクト定義のエラー。

問題は変数に関連していると思いますStockDays

コードを機能させるにはどうすればよいですか?

4

2 に答える 2

3

私はコードにコメントしたので、あなたはそれを理解するのに問題がないはずです:)

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
于 2012-12-26T09:17:43.413 に答える
0

これでうまくいくと思います

Range( "AG2")。FormulaR1C1 = "= ROUNDUP(RC [-6] * " & StockDays & "/ 90、0)"

uが犯した間違いは、数式を適用したが、使用された変数uを変数の値に置き換えるのを忘れたということでした。

于 2012-12-26T09:14:18.997 に答える