我有一个For循环&对于VBA中的每个循环,其中我使用偏移量在循环中的每个单元格的内容中搜索一个字符串:
为每一项使用:
Lastrow = ActiveSheet.Range("A2").End(xlDown).Row
Set Myrange = ActiveSheet.Range("M2:M" & Lastrow)
countrows = Cells(Cells.Rows.Count, "A").End(xlUp).Row
For Each Cell In Myrange
If strPattern <> "" Then
If Cell.Offset(0, 31) <> "Fizz" Then
strInput = Cell.Value用于:
countrows = Cells(Cells.Rows.Count, "A").End(xlUp).Row
For i = 1 To countrows
Range("AK" & i).Select
check_value = ActiveCell
If ActiveCell.Offset(0, 7) <> "Buzz" Then
ActiveCell.EntireRow.Copy在下面的示例中,我必须使用ActiveCell.Offset。使用Cell.Offset甚至Cell.Offset.Value都会引发“所需的对象”错误。
为什么是这种情况?
发布于 2017-06-01 15:26:47
在下面的示例中,您还没有定义Cell是什么,所以VBA不知道您想要做什么。Cell不是一个特殊的词,在最上面的例子中它是一个变量
编写底部语句的更好方法是使用With而不是ActiveCell和Select
countrows = Cells(Cells.Rows.Count, "A").End(xlUp).Row
For i = 1 To countrows
With Range("AK" & i)
check_value = .Value2
If .Offset(0, 7) <> "Buzz" Then
.EntireRow.Copy
End If
End With
Next i发布于 2017-06-01 15:26:15
在第一个循环单元格中是一个范围对象。
在第二个单元格是Nothing时,必须为它分配一个Range对象,即:
Set Cell = Range("AK" & i)顺便说一句,你有声明你的变量吗?
https://stackoverflow.com/questions/44311520
复制相似问题