【发布时间】:2020-07-13 15:12:10
【问题描述】:
当我的数据是原始数据且未经过滤时,我可以选择它们,Selection.Rows.Count 返回有效数字。
在自动筛选之后它返回一个数字,就好像我选择了不可见的行一样,即使Selection.Copy 不会复制所选行以外的行。
如何获取所选行的有效计数?
我试过Selection.SpecialCells(xlCellTypeVisible).Rows.Count。
编辑
我在另一个宏中使用过滤器,然后手动选择要添加到另一个工作表的行。
我做了两个按钮,一个用于过滤我的表格,第二个用于将选定的行移动到另一个工作表。
Sub ajout_commande()
Set DataSheet = ThisWorkbook.Worksheets("Prepa Commandes")
Dim a As Range, b As Range
Set a = Selection
i = 0
s = Selection.SpecialCells(xlCellTypeVisible).Count
For Each b In a.Rows
i = i + 1
DataSheet.Cells(6, 1).EntireRow.Insert
DataSheet.Range("A1:Z1").Copy DataSheet.Cells(6, 1).EntireRow
Next
Dim r1 As Range, r2 As Range, r3 As Range
Let copyrange1 = "E1" & ":" & "I" & i
Let copyrange2 = "BK1" & ":" & "BM" & i
Set r1 = a.Range(copyrange1)
Set r2 = a.Range(copyrange2)
Set r3 = Union(r1, r2)
r3.Copy
DataSheet.Cells(6, 1).PasteSpecial xlPasteValues
MsgBox s & " and " & i
End Sub
这里我的表格被过滤了,我想将选定的行添加到另一个工作表中,但 Selection.Rows.Count 返回的行数比我选择的行数多,因为它计算了不可见的行数,即使 Selection.copy 有效。
@ 987654321@
对于此示例,Selection.Rows.Count = 28,因为第 10 行和第 20 行、第 21 行和第 25 行等之间的行不可见。
有没有获得我想要的数字的功能(在这张图片上 16)?
【问题讨论】: