excel - VBA code delete the row of noisy data -
sub project()     dim a, deltat_value1, deltat_value2, deltat_value3 integer     = 2             deltat_value1 = cells(a, 7).value         deltat_value2 = cells(a + 1, 7).value         deltat_value3 = cells(a + 2, 7).value         if abs(deltat_value1 - deltat_value2) > 5 , abs(deltat_value2 - deltat_value3) > 5         rows(a + 1).entirerow.delete         end if         = + 1     loop until deltat_value1 = 14700 end sub i trying delete noisy data, set if data point has difference bigger 5 both points above , below it, noisy data , set delete whole row of noisy data. however, having problem line:
deltat_value3=cells(a+2,7).value runtime error 1004 "application-defined or object-defined error" and running takes extremely longer time. new user of vba programming , think method may inefficient, there may other ways work better, advice?
how about:
sub ytrewq()     dim long, deltat_value1 long, deltat_value2 long, deltat_value3 long     dim rkill range      = 2             deltat_value1 = cells(a, 7).value         deltat_value2 = cells(a + 1, 7).value         deltat_value3 = cells(a + 2, 7).value         if abs(deltat_value1 - deltat_value2) > 5 , abs(deltat_value2 - deltat_value3) > 5             if rkill nothing                set rkill = cells(a + 1, 1)             else                set rkill = union(rkill, cells(a + 1, 1))             end if         end if         = + 1     loop until deltat_value1 = 14700      rkill.entirerow.delete end sub 
Comments
Post a Comment