仅将VBAmacros应用于已过滤的单元格

有点问题。 审计员要求我们整个分类帐的整个Excel转储,这是巨大的(为什么?他们为什么要这个?)。 IT最终设法通过几个工作簿为我导出,但似乎有一些行是重复的。 哪一个似乎没有模式。 我有一些代码来删除整个重复的行,但每个电子表格是如此之大,我不能够在整个数据集上运行它。

我已经确定了受影响的分类账,尽pipe我可以过滤,然后将代码应用到这些分支。 它仍然需要很长的时间,但不会像过去那么长时间地“寻找”它们。

有没有办法,只是将代码应用于我已过滤的单元格? 我已经尝试了SpecialCells(xlCellTypeVisible),但是我认为我把它添加到了错误的地方,因为我的macros仍在search整个工作簿。

我添加SpecialCells之前的原始代码如下:

Dim ColN As Long Dim MyS As Worksheet: Set MyS = ActiveSheet Dim MyR As Range: Set MyR = MyS.Cells(1, 1).CurrentRegion Dim NumCol As Long: NumCol = MyR.Columns.Count Dim MyArray As Variant: ReDim MyArray(0 To NumCol - 1) For ColN = 1 To NumCol MyArray(ColN - 1) = ColN Next MyR.RemoveDuplicates Columns:=(MyArray), Header:=xlYes Dim rowcount As Long, i As Long, j As Long, k As Boolean rowcount = MyR.Rows.Count For i = rowcount To 1 Step -1 k = 0 For j = 1 To NumCol If MyR.Value2(i, j) <> "" Then k = 1 Exit For End If Next j If k = 0 Then MyR.Rows(i).Delete Shift:=xlUp End If Next I Application.ScreenUpdating = True 

非常感谢。

 For i = rowcount To 1 Step -1 k = 0 For j = 1 To NumCol If MyR.Value2(i, j) <> "" and Rows(I, j).Hidden = false Then 

我在打电话,所以我无法testing。