为什么这会在后续运行中导致错误?

时间:2016-12-01 10:47:09

标签: excel-vba vb6 vba excel

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

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

第一次通过,效果很好。如果我删除电子表格,再次运行它而不关闭程序,我得到错误'91',“对象变量或没有设置块变量”。

任何想法,以及我如何解决它?

1 个答案:

答案 0 :(得分:2)

假设您的wrksh完全符合工作簿中的有效工作表(定义为Worksheet)。 rn是一个数字值,代表Range的最后一行(定义为Long)。最后,ActiveSheetwrksh表格相同,那么下面的代码应该适合您:

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