我有一堆数据,标题上带有过滤器。使用此代码,它已经能够根据我的需要复制数据。但是,我希望此代码仅应用于可见单元格(在我选择标题上的特定过滤器列表后,Excel 上显示的数据)。
Private Sub CommandButton1_Click()
Dim i As Long, j As Long
Dim arrData, rngData As Range
Dim arrRes, iR As Long
Dim oSht1 As Worksheet, oSht2 As Worksheet
Set oSht1 = Sheets("COBA")
Set oSht2 = Sheets("AMBIL")
Set rngData = oSht1.Range("A1").CurrentRegion
arrData = rngData.Value
ReDim arrRes(1 To UBound(arrData), 10)
For i = LBound(arrData) To UBound(arrData)
If Len(arrData(i, 12)) * Len(arrData(i, 13)) > 0 Then
iR = iR + 1
arrRes(iR, 4) = arrData(i, 1)
arrRes(iR, 5) = arrData(i, 2)
arrRes(iR, 6) = arrData(i, 6)
arrRes(iR, 7) = arrData(i, 14)
arrRes(iR, 8) = arrData(i, 16)
arrRes(iR, 9) = arrData(i, 17)
arrRes(iR, 10) = arrData(i, 15)
End If
Next i
If iR > 0 Then
oSht2.Cells.Clear
oSht2.Range("A1").Resize(iR, 11).Value = arrRes
End If
End Sub
您可以修改此行:
If Len(arrData(i, 12)) * Len(arrData(i, 13)) > 0 Then
到
If Len(arrData(i, 12)) * Len(arrData(i, 13)) > 0 And arrData(i, 12).EntireRow.Hidden = False Then