特定のセルに数式を設定しようとしています。私はmyCell.Formula始まるライン上のアプリケーションまたはオブジェクト定義のエラーを取得しかしアプリケーションまたはオブジェクトがrange.formulaでエラーを定義しました
For i = 0 To MotorAmount
Set myCell = Range(Target.Address).Offset(i, 1)
myCell.Formula = "=IFERROR(VLOOKUP(Range(Target.Address);Database!$B$31:$G$131;2;False);0)"
Next i
:forループ式を設定するためのコードは次のようです。誰かがエラーがなぜ発生し、どのように修正するのか教えてください。
PS:私のExcelはそのように動作するため、式にセミコロンを使用します。 「データベース」は私が使用する別のシートの名前です。
PS2:サブは、Sheet1のMicrosoft ExcelオブジェクトのVBAProjectに配置されます。
完全なコードは次のとおりです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim myRange As Range
Dim myCell As Range
Dim i As Integer
Dim MotorAmount As Integer
Set myRange = Range("A68:A168")
If Not Application.Intersect(myRange, Range(Target.Address)) Is Nothing Then
If Not Range(Target.Address) = "" Then
MotorAmount = InputBox("How many motors are used in this transport?", "Amount of motors")
For i = 0 To MotorAmount
Set myCell = Range(Target.Address).Offset(i, 1)
myCell.Formula = "=IFERROR(VLOOKUP(Range(Target.Address);Database!$B$31:$G$131;2;False);0)"
Next i
End If
End If
End Sub
フィードバック、ありがとうございました。私はそれを変更しましたが、まだエラーが発生します。 target.row文で式の中にコードを使用していませんか? –
いいえ、実際にコードを数式に入れるのではなく、結果を式の文字列に連結したためです。私はあなたが参照値として使用している最初のセルであるので、循環参照を作成していることに気付きました。 – Rory