【发布时间】:2019-01-17 02:40:25
【问题描述】:
目标:我想修改下面的代码,这样它就不会复制范围并将过滤后的范围粘贴到列中,而是计算过滤的行数,并使用计数,在下一个空行粘贴下 x 行的文本。
示例:我正在为所有非空白结果过滤收入损失列。结果是有 10 个条目符合此条件。然后,我想在另一张表(“计算数据”)中为 C 列中接下来的 10 个空行粘贴“收入或租金损失”。
代码:
Dim RPDataTbl As ListObject
Dim DescCol As ListColumn, BI As ListColumn
Dim copyRng As Range
Set RPDataTbl = Sheets("Risk Partner Data").ListObjects("RPdata")
With RPDataTbl
Set DescCol = .ListColumns("Property Identifier")
Set BIcol = .ListColumns("Loss of Income or Rent")
.Range.AutoFilter Field:=BIcol.Index, Criteria1:="<>"
End With
On Error Resume Next
Set copyRng = DescCol.DataBodyRange.SpecialCells(xlCellTypeVisible)
On Error GoTo 0
If Not copyRng Is Nothing Then
copyRng.Copy
With Sheets("Calc Data")
.Cells(.Rows.Count, "B").End(xlUp).Offset(1).Value = "Loss of Income or Rent"
End With
Application.CutCopyMode = False
End If
RPDataTbl.Range.AutoFilter Field:=BIcol.Index
试图编辑代码,但它只粘贴一次特殊文本,而不是整个范围结果,例如如果 C 中有 10、10 行有“收入或租金损失”。
【问题讨论】: