これは私のコードです。 Cell L1
で始まる値のリストを実行し、別のワークシートでその値を見つけ、オフセットセルを検出します。そのセルに"TEMPLATE"
が含まれている場合は、元のリストから値を削除します。変数 'cell.offset'を設定すると、実行時エラー '1004'、アプリケーション定義またはオブジェクト定義エラー
Sub Removetemplate()
Dim x As Variant
Dim myString As String
Dim temprng As Range
Dim cell As Object
' Set numrows = number of rows of data.
Worksheets("WorkingSO").Activate
NumRows = Range("L2", Range("L2").End(xlDown)).Rows.Count
' Select cell L2.
Set SORNG = Range("L2")
SORNG.Select
' Establish "For" loop to loop "numrows" number of times.
Worksheets("Sales Orders").Activate
For x = 1 To NumRows
For Each cell In Sheet1.Cells
If cell.Value = SORNG.Value Then
Set temprng = cell.Offset(28, -17)
myString = temprng.Value
If InStr(myString, "TEMPLATE") > 0 Then
SORNG.ClearContents
End If
End If
Next
' Selects cell down 1 row from active cell.
Set SORNG = SORNG.Offset(1, 0)
Next
End Sub
1004 error
はラインSet temprng = cell.Offset(28, -17)
で起こります。私は100%確信していませんが、私はそれが最初にはたらくが、2回目のループでは失敗すると信じています。
にあります。17未満の行にあるセルのインスタンスはありません。 .value = SORNG.value –
@ConnorHoward 'Set tmprng'行にブレークポイントを置き、ブレークポイントを打ち、'?cell.Address'と打ちます。エラーが発生しました。行番号に問題があります。 –
番号。オフセットの2番目の値は行ではなく列を調整します。しかし、その最も近い列はZ(26) –