每10行中删除/隐藏9个?

第一次海报。

我是一个VBA新手,我无法find一个方法来做到以下几点:

假设我有一个5-50,000行数据输出(仅〜20列)的数据集。 我想绘制这个数据集,但这是相当的记忆税。 是否有一个macros可以隐藏每10行中的9个,从而将数据集降低到10%(更易于pipe理)? 数据每隔几秒收集一次,所以我可以很容易地删除多余的数据,而不会影响图表。

我试过“删除/隐藏每一个其他行循环”,但它仍然留下大量的信息。 我认为90%(或者如果可调的话,减lessX%)最好。 感谢您的任何意见。

这段代码将随机select/删除90%的行。 由于随机性可能不完全是90%。 有很多方法确保90%,但我更喜欢这个简单。

Sub RemoveRows() Dim inputRange As Range, removeRange As Range, r As Range Set inputRange = Sheet1.Range("A1:A1000") Randomize For Each r In inputRange If Rnd < 0.9 Then If removeRange Is Nothing Then Set removeRange = r Else Set removeRange = Union(removeRange, r) End If End If Next r removeRange.EntireRow.Select 'removeRange.EntireRow.Delete End Sub 

下面的代码将隐藏范围内的每x行。 你可以在variablesrowCnt赋值x ,代码中=9

 Sub Demo() Dim rng As Range, cel As Range, hideRng As Range Dim lastRow As Long, rowCnt As Long, i As Long Dim ws As Worksheet rowCnt = 9 'number of rows to hide Set ws = ThisWorkbook.Sheets("Sheet5") 'change Sheet5 to your data sheet With ws lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'last row with data using Column A For i = 2 To lastRow Step rowCnt + 1 'loop through Column A starting from Row 2 If hideRng Is Nothing Then Set hideRng = Range(.Cells(i, 1), .Cells(i + rowCnt - 1, 1)) 'get range of 9 cells Else Set hideRng = Union(hideRng, Range(.Cells(i, 1), .Cells(i + rowCnt - 1, 1))) 'union range of 9 cells End If Next i End With hideRng.EntireRow.Select 'use this line to select rows 'hideRng.EntireRow.Hidden = True 'use this line to hide rows 'hideRng.EntireRow.Delete 'use this line to delete rows End Sub