Это мой код. Он проходит через список значений, начиная с Cell L1
, находит их на другом листе и затем находит ячейку смещения. Если эта ячейка содержит "TEMPLATE"
, она должна удалить значение из исходного списка.Ошибка времени выполнения '1004', определяемая приложением или объектная ошибка при установке переменной = cell.offset
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)
. Im не на 100% уверен, но я считаю, что он работает в первый раз, но не работает во втором цикле.
нет экземпляров ячейки в строке меньше 17, где ячейка .value = SORNG.value –
@ConnorHoward ставит точку останова на строку 'Set tmprng', ударяет точку останова и набирает'? cell.Address'. Вы столкнулись с ошибкой, там * * проблема с номером строки. –
нет. а второе значение в смещении регулирует столбец, а не строку. но его ближайшая колонка - Z (26) –