Excel 为什么这会导致后续运行出错?

Excel 为什么这会导致后续运行出错?,excel,vb6,vba,Excel,Vb6,Vba,我在构建Excel电子表格的VB6应用程序中有以下代码: wrksh.Range("F4:F" & rn).Select With Selection .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Range("J5"), Unique:=True End With 第一次通过时,效果很好。如果我删除电子表格,在不关闭程序的情况下再次运行它,我会得到错误“91”,“对象变量或未设置块变量” 你知道为

我在构建Excel电子表格的VB6应用程序中有以下代码:

wrksh.Range("F4:F" & rn).Select
With Selection
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ActiveSheet.Range("J5"), Unique:=True
End With
第一次通过时,效果很好。如果我删除电子表格,在不关闭程序的情况下再次运行它,我会得到错误“91”,“对象变量或未设置块变量”


你知道为什么,以及我如何修复它吗?

假设你的
wrksh
完全符合工作簿中的有效工作表(定义为
工作表
rn
是一个数值,表示
范围的最后一行(定义为
Long
)。最后,
ActiveSheet
wrksh
工作表是同一工作表,那么下面的代码应该适用于您:

With wrksh.Range("F4:F" & rn)
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wrksh.Range("J5"), Unique:=True
End With

假设您的
wrksh
完全符合工作簿中的有效工作表(定义为
工作表
rn
是一个数值,表示
范围的最后一行(定义为
Long
)。最后,
ActiveSheet
wrksh
工作表是同一工作表,那么下面的代码应该适用于您:

With wrksh.Range("F4:F" & rn)
    .AdvancedFilter Action:=xlFilterCopy, CopyToRange:=wrksh.Range("J5"), Unique:=True
End With

试试下面我的答案中的代码,让我知道它是否适合你。试试下面我的答案中的代码,让我知道它是否适合你。你所有的假设都是正确的,你的建议确实解决了问题。谢谢。@Obfuscated还有一个坏了的时钟一天显示两次正确的时间:)很好,你所有的假设都是正确的,你的建议确实解决了问题。谢谢。@一个坏掉的时钟一天显示两次正确的时间:)不客气