使用Intersect复制筛选的列

时间:2018-03-25 13:12:13

标签: excel vba excel-vba

从Stack Overflow获取下面的代码。它运作良好,但现在显示:

  

运行时错误:“应用程序定义或对象定义错误”

我搜索了其他代码但它至少使用了3到4行,比如找到第一个过滤行,最后一个过滤行,选择然后复制。

任何人都可以让我知道下面代码中出了什么问题

Sub Submission_SLA()

WeekS = ">=" & Application.InputBox(Prompt:="Enter Start Date", Default:=Format(Date, "dd mmm yyyy"), Type:=2)
WeekE = "<=" & Application.InputBox(Prompt:="Enter End Date", Default:=Format(Date, "dd mmm yyyy"), Type:=2)
Windows("Overall report.xlsb").Activate
 Sheets("Sheet1").Select
Range("A:N").AutoFilter Field:=10, Criteria1:=WeekS, Operator:=xlAnd, Criteria2:=WeekE
    Intersect(ActiveSheet.UsedRange.Columns("A:I"), ActiveSheet.UsedRange.Offset(1)).SpecialCells(xlCellTypeVisible).Copy
    Sheets("ORCA 7.5").Select
    Range("A2").Select
    ActiveSheet.Paste

End Sub

我想这段代码更清楚地解释了我的问题

2 个答案:

答案 0 :(得分:1)

该行会给您一个错误的唯一原因是,如果AI列中的值小于2的单元格

我无法告诉您如何修复它,因为您既没有提供样本数据也没有解释您尝试做什么。

一些建议herehere

同时

答案 1 :(得分:0)

if you want to keep it a one liner:

If Application.WorksheetFunction.Subtotal(103, ActiveSheet.UsedRange.Columns("A")) > 1 Then ActiveSheet.UsedRange.Columns("A:I").Offset(1).SpecialCells(xlCellTypeVisible).Copy