这是我的代码。它贯穿始于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)
。林不是100%肯定,但我相信它是第一次通过,但第二次循环失败。
中查找“WorkingSO”列“L”值,没有小于17的行的实例,其中单元格.value = SORNG.value –
@ConnorHoward在'Set tmprng'行放置一个断点,点击断点并键入'?cell.Address'。你遇到了一个错误,那里*是行号问题。 –
没有。并且偏移量中的第二个值将调整列而不是行。但最近的专栏是Z(26) –