我创建了 VBA 代码来对 Stock 列表进行排序,读取 N 列的内容并将任何匹配项(在本例中为“KS”)的行复制到单独的选项卡中。
我的代码运行正常,除非在 Stock 表中找不到任何实例。
“错误是 91 - 对象变量或未设置 block 变量”
我尝试了 If Not 的变体,但没有成功。我确信这从根本上来说很简单,但答案暗示了我。
建议将不胜感激。
Sub KS()
Dim MyRange, MyRange1 As Range
Sheets("Stock").Select
LastRow = Sheets("Stock").Range("K65536").End(xlUp).Row
Set MyRange = Sheets("Stock").Range("N1:N325" & LastRow)
For Each c In MyRange
If c.Value = "KS" Then
If MyRange1 Is Nothing Then
Set MyRange1 = c.EntireRow
Else
Set MyRange1 = Union(MyRange1, c.EntireRow)
End If
End If
Next
MyRange1.Select
Selection.Copy
Sheets("KS").Select
Range("A1").Select
ActiveSheet.Paste
End Sub
最佳答案
MyRange
是 Nothing
如果没有匹配的值,那么试试这个
新队
If Not MyRange1 Is Nothing Then MyRange1.Copy Sheets("KS").[a1]
代替这个
删除线
MyRange1.Select
Selection.Copy
Sheets("KS").Select
Range("A1").Select
ActiveSheet.Paste
关于excel - 在范围中找不到值时出错 - VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23653931/