0
我有15列的数据,行范围从400 - 1000,我已经应用了过滤器,我热衷于只将D列和J列的可见单元格复制到不同的工作表上,但粘贴通过转换到D6的特殊值。SpecialCells(xlCellTypeVisible)
我已经使用了下面的这个方法,但它只是复制两个可见行,而不是每一行根据代码,就像它在过去修改过的其他工作表一样。问题可能是我在一个宏中运行三个或四个进程。
我会很热衷于知道,它的副本列d和列j可见单元格,不包括报头到不同的片
所以,我站的地方的代码,它运行和应用,我可以如何修改这个代码过滤器,但没有复制宏的这个特定部分的所有行,其次,我会热衷于知道如何修改它,所以它只复制列D和J作为上面的排除标题,并只复制可见单元格通过转置粘贴特殊值。
Set rngToCopy = .Offset(1, 0).SpecialCells(xlCellTypeVisible).Copy
Report.Range("D6").PasteSpecial xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Sub Sample()
Dim ws As Worksheet
Dim lRow As Long
Dim rngToCopy As Range, rRange As Range
Set ws = Sheets("Sheet1")
With ws
lRow = .Range("A" & .Rows.Count).End(xlUp).Row
Set rRange = .Range("A1:A" & lRow)
'~~> Remove any filters
.AutoFilterMode = False
With rRange 'Filter, offset(to exclude headers) and copy visible rows
.AutoFilter Field:=1, Criteria1:="<>"
Set rngToCopy = .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow
End With
'~~> Remove any filters
.AutoFilterMode = False
rngToCopy.Copy
'
'~~> Rest of the Code
'
End With
End Sub
我加托马斯代码,子一块,看是否自动筛选工作,并得到错误91
Sub Filter()
Dim Sheetx As Worksheet
Dim rngToCopy As Range, rRange As Range
With Sheetx
Set rRange = .Range("A1", .Range("A" & .Rows.Count).End(xlUp))
With rRange
.AutoFilter Field:=11, Criteria1:="30"
.AutoFilter Field:=4, Criteria1:="1"
.AutoFilter Field:=2, Criteria1:="=*1", _
Operator:=xlAnd
With .SpecialCells(xlCellTypeVisible)
Set rngToCopy = Union(.Offset(0, 3), .Offset(0, 9))
End With
rngToCopy.Copy
End With
End With
End Sub
托马斯我想要的代码,以两列,d和J不包括报头,而不是d复制到J. – user3287522
'设置rngToCopy = .range( “D2:d” &lrow) .SpecialCells(xlCellTypeVisible)''然后将其粘贴到另一个工作表中并将其设置为J,而将其粘贴到它旁边。如果你想让它们复制在一起,再收集它们两个? –
复制在一起,我将测试thomas代码 – user3287522