![]() |
Not IsNumeric not working - or is it me?
I'm trying to evaluate all cells down a column and delete all rows with a
non-number in the cell. It was working fine - until I hit "*85"!! The * threw everthing off. So I was trying to use Not IsNumeric to evaluate the second character of the cell value. But my code is not working. Apparently I'm using it wrong. If anyone can help. I'd appreciate it. Ed Do If .Cells(i, 1).Value = "" Or _ .Cells(i, 1).Value = " " Then .Cells(i, 1).EntireRow.Delete j = .Rows.Count ****** Problem area ****** ElseIf Len(.Cells(i, 1).Value) 1 And _ Not IsNumeric(Left(.Cells(i, 1).Value, 2)) Then ****** Problem area ****** .Cells(i, 1).EntireRow.Delete j = .Rows.Count Else i = i + 1 End If Loop Until i j |
Not IsNumeric not working - or is it me?
try
Sub delnonnum() For i = Cells(Rows.Count, 1).End(xlUp).row To 1 Step -1 If Not IsNumeric(Cells(i, 1)) Or Cells(i, 1) = "" Then Rows(i).Delete Next End Sub -- Don Guillett SalesAid Software "Ed" wrote in message ... I'm trying to evaluate all cells down a column and delete all rows with a non-number in the cell. It was working fine - until I hit "*85"!! The * threw everthing off. So I was trying to use Not IsNumeric to evaluate the second character of the cell value. But my code is not working. Apparently I'm using it wrong. If anyone can help. I'd appreciate it. Ed Do If .Cells(i, 1).Value = "" Or _ .Cells(i, 1).Value = " " Then .Cells(i, 1).EntireRow.Delete j = .Rows.Count ****** Problem area ****** ElseIf Len(.Cells(i, 1).Value) 1 And _ Not IsNumeric(Left(.Cells(i, 1).Value, 2)) Then ****** Problem area ****** .Cells(i, 1).EntireRow.Delete j = .Rows.Count Else i = i + 1 End If Loop Until i j |
Not IsNumeric not working - or is it me?
Hi Ed,
"*" isn't the problem, it is the way you loop through cells and delete rows. You need to delete rows in the inverted order. Also, you have a number of redundant conditions. Try this code: Sub test() LastRow = Cells(Rows.Count, 1).End(xlUp).Row ScreenUpdating = False For i = LastRow To 1 Step -1 If IsEmpty(Cells(i, 1)) Or Not IsNumeric(Cells(i, 1)) Then Rows(i).Delete End If Next End Sub Regards, KL "Ed" wrote in message ... I'm trying to evaluate all cells down a column and delete all rows with a non-number in the cell. It was working fine - until I hit "*85"!! The * threw everthing off. So I was trying to use Not IsNumeric to evaluate the second character of the cell value. But my code is not working. Apparently I'm using it wrong. If anyone can help. I'd appreciate it. Ed Do If .Cells(i, 1).Value = "" Or _ .Cells(i, 1).Value = " " Then .Cells(i, 1).EntireRow.Delete j = .Rows.Count ****** Problem area ****** ElseIf Len(.Cells(i, 1).Value) 1 And _ Not IsNumeric(Left(.Cells(i, 1).Value, 2)) Then ****** Problem area ****** .Cells(i, 1).EntireRow.Delete j = .Rows.Count Else i = i + 1 End If Loop Until i j |
All times are GMT +1. The time now is 04:22 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com