Avatar billede lkh007 Nybegynder
15. juli 2014 - 19:28

Slette rækker hvis bestemte kolonner indeholder celler med #N/A

Hejsa

Jeg arbejder i et stort regneark, hvor der nogle gange er mere end 30.000 rækker men det samme antal kolonner (fra A til AE). I kolonne Y til AE er der nogle faste formler, hvor resultatet i nogle celler vil være "#N/A". De tilhørende rækker vil jeg gerne have slettet og jeg har prøvet at bruge to forskellige koder. Begge to virker perfekt i regneark med få rækker (under 500). Men i det originale regneark crasher Excel og svarer ikke, så jeg må genstarte programmet.

Koderne jeg har brugt er følgende:

Sub Button3_Click()
Dim Lrow As Long
Lrow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
Do While Lrow > 0
    If IsError(Cells(Lrow, 25)) Or IsError(Cells(Lrow, 26)) Or IsError(Cells(Lrow, 27)) Or IsError(Cells(Lrow, 28)) Or IsError(Cells(Lrow, 29)) Or IsError(Cells(Lrow, 30)) Or IsError(Cells(Lrow, 31)) Then
        Rows(Lrow).Delete
    End If
    Lrow = Lrow - 1
Loop
End Sub

OG

Sub Button3_Click()
Dim Lrow As Long
Dim i As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo Err_Desc
Lrow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For i = 2 To Lrow
    If IsError(Cells(i, 25)) Or IsError(Cells(i, 26)) Or IsError(Cells(i, 27)) Or IsError(Cells(i, 28)) Or IsError(Cells(i, 29)) Or IsError(Cells(i, 30)) Or IsError(Cells(i, 31)) Then
        Cells(i, 33) = 0
    Else
        Cells(i, 33) = 1
    End If
Next i
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range( _
        "AG1:AG" & Lrow), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
        xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Range("A1:AG" & Lrow)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
End With
For i = Lrow To 2 Step -1
    If Cells(i, 33) = 0 Then
        Rows(i).Clear
    Else
        Exit For
    End If
Next i
Range("AG1:AG" & Lrow).Clear
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Exit Sub
Err_Desc:
MsgBox Err.Description & " : " & Err.Number
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Jeg vil sætte stor pris på input til hvordan jeg kan undgå problemet med Excel, der ikke svarer.

På forhånd tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester