我遇到问题执行过滤数据的副本+粘贴。如果过滤字段的结果为0或大于1,则我的代码不会遇到错误。但是,如果在过滤器后有一条记录可见,则会显示运行时错误6。请参阅下面使用的代码:运行时错误6 - 溢出,变量设置为长
Dim wsDue As Worksheet
Dim wsTarget As Worksheet
Dim y As Long
Dim x As Long
x = Range("A65536").End(xlUp).Row
Range("A1").AutoFilter Field:=2, Criteria1:=Array("Yes"), Operator:=xlFilterValues
Set wsDue = Worksheets("Due")
Set wsTarget = Worksheets("Target List Consolidated")
y = wsDue.Range("B" & wsDue.Rows.Count).End(xlUp).Row
If wsDue.Range(wsDue.Cells(2, 2), wsDue.Cells(y, 2)).SpecialCells(xlCellTypeVisible).Count > 1 Then
wsDue.Range("B2:B" & x).Copy
wsTarget.Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False
Else:
End If
不应认为是'wsDue.Range( “B2:B”&y).Copy'? – Jeeped
现在不是** x **和** y **是同一件事吗?他们是否应该来自不同的工作表?为什么要定义一个父级工作表而不是另一个? – Jeeped
它的工作!我删除了y,并使用了x。谢谢@Jeeped – atserk