我正在尝试从一个工作簿复制并粘贴到另一个工作簿,但我得到的自动筛选方法的范围类失败的错误。我发现当我没有指定我的结束行时,就会出现这个错误。例如,如果我的复制数据字段在第500行结束,我必须精确设置我的范围(A2,AJ500)。但是,此数据(结束行)可以每月更改。它可以是AJ700,AJ600等。有没有一种方法可以使我的范围(A2,结束行)和宏运行时不会出现范围类失败错误?
如果你对我的问题不清楚,请告诉我。谢谢。
Option Explicit
Sub Macro1()
Dim wb As Workbook, wbO As Workbook
Dim ws As Worksheet, wsO As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets("Copyingfrom")
Set wbO = Workbooks.Add("Output.xlsm")
With wbO
Set wsO = wbO.Sheets("OutputSheet")
ActiveSheet.AutoFilterMode = False
With ws.Range("A2:AJ500") --> this is the field that I want to run as something like (A2:end)
.AutoFilter Field:=36, Criteria1:="1"
.SpecialCells(xlCellTypeVisible).Copy
End With
wsO.Range("I3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
End With
End Sub
发布于 2019-01-03 19:04:06
复制到工作簿
《守则》
Option Explicit
Sub CopyRange()
Dim ws As Worksheet, wsO As Worksheet
Dim lngLastRow As Long
Set ws = ThisWorkbook.Sheets("Copyingfrom")
Set wsO = Workbooks("Output.xlsm").Sheets("OutputSheet")
With ws
lngLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("A2:AJ" & lngLastRow)
.AutoFilter Field:=36, Criteria1:="1"
.SpecialCells(xlCellTypeVisible).Copy
End With
wsO.Range("I3").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
.AutoFilterMode = False
End With
Application.CutCopyMode = False
End Sub
发布于 2019-01-03 19:30:05
最简单的方法:
With ws.Range("A2").CurrentRegion ...
这将自动定义您的范围,无论您的最后一行是什么。
https://stackoverflow.com/questions/54027799
复制相似问题