i've 1 workbook 170k rows, delete rows when result between cells 0,
operation, use code below, 170k (the rows deleted 90k) code run slowly.
know way more performance. thank
last = cells(rows.count, "k").end(xlup).row = last 2 step -1 if (cells(i, "k").value + cells(i, "l").value) < 1 cells(i, "a").entirerow.delete end if next
as long fine putting data on new tab, code below need in 1.5 seconds.
sub extractrows() dim vdatatable variant dim vnewdatatable variant dim vheaders variant dim lastrow long dim long, j long dim counter1 long, counter2 long worksheets(1) lastrow = .cells(rows.count, "k").end(xlup).row vheaders = .range("a1:l1").value2 vdatatable = .range("a2:l" & lastrow).value2 end = 1 ubound(vdatatable) if vdatatable(i, 11) + vdatatable(i, 12) > 0 counter1 = counter1 + 1 end if next redim vnewdatatable(1 counter1, 1 12) = 1 ubound(vdatatable) if vdatatable(i, 11) + vdatatable(i, 12) > 0 counter2 = counter2 + 1 j = 1 12 vnewdatatable(counter2, j) = vdatatable(i, j) next j end if next worksheets.add after:=worksheets(1) worksheets(2) .range("a1:l1") = vheaders .range("a2:l" & counter1 + 1) = vnewdatatable end end sub
Comments
Post a Comment