Hvad overser jeg i nedenstående kode? anvendes samme kode i Excel 2010 så fungerer den fint. Jeg har en kolonne E bestående af tekst og tal. rækker med tekst skal flyttes til et andet ark. Det går galt i linjen, hvor jeg skal afgøre om det er en tekst eller et tal. Gode råde efterlyses - også gerne en optimering, da det tager ret lang tid at gennemløbe de mange linjer.
Sub test() Call FlytTilFejllliste("Data", 3196) End Sub
Sub FlytTilFejllliste(ark, Num_of_Rows) ' Dim num_of_rows As Integer Dim i As Integer Dim text As integer
Sheets(ark).Activate
For i = Num_of_Rows To 2 Step -1
text = Range(col & i) If Not IsNumeric(text) Then Sheets(ark).Range("A" & i & " : H" & i).Copy Worksheets("Fejlliste").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Sheets(ark).Range("A" & i & " : H" & i).Delete End If Next
Hej Kabbak - jeg kan se, at jeg mangler en linje i min kode i forhold til min oprindelige kode: col = "E": Det er ikke her, at problemet ligger.
Sub FlytTilFejllliste(ark, Num_of_Rows)
Dim i As Integer Dim col As String Dim text As integer
Sheets(ark).Activate col = "E" For i = Num_of_Rows To 2 Step -1
text = Range(col & i) If Not IsNumeric(text) Then Sheets(ark).Range("A" & i & " : H" & i).Copy Worksheets("Fejlliste").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Sheets(ark).Range("A" & i & " : H" & i).Delete End If Next
I Excel 2010 afvikles koden uden problemer, kun linjer med tekst flyttes til arket fejllisten. I Excel 2013, så kan jeg godt afvikle koden. Resultatet er bare, at der også flyttes nogle af de linjer, der indeholder tal i col E.
Sheets(ark).Activate col = "E" For i = Num_of_Rows To 2 Step -1
If Not IsNumeric(Range(col & i)) And Range(col & i) <> "" Then Sheets(ark).Range("A" & i & " : H" & i).Copy Worksheets("Fejlliste").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Sheets(ark).Range("A" & i & " : H" & i).Delete End If Next
Sheets("ark").Activate col = "E" Application.ScreenUpdating = False For i = Num_of_Rows To 2 Step -1
text = Range(col & i) If Not IsNumeric(text) Then Sheets("ark").Range("A" & i & " : H" & i).Copy Worksheets("Fejlliste").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial Sheets("ark").Range("A" & i & " : H" & i).Delete End If Next Application.ScreenUpdating = True End Sub
Hvis "har det nogen betydning at indholdet i Col E er resultatet af en Vlookup?" er problemet, så prøv at tjekke dette, ved at kopiere cellerne til sig selv, som værdier.
Public Sub Flyt_linjer(ark) Dim RåData As Variant, UdData2 As Variant, UdData3 As Variant, UdData4 As Variant Dim UD2 As Long, UD3 As Long, UD4 As Long Dim I As Integer, J As Long, X As Integer, Col As Integer, Rk As Long, Y As Integer
Det er en tilrettet kode fra Kabbak, som jeg har fundet på nettet.
jeg har et lille problem tilbage. De data som koden skal bruges på er en udlæsning fra en database. I en af kolonnerne er indeholdet et 16 cifret tal - men formatet tekst. Når jeg kører koden, så konverteres celleindholdet til tal Hvordan får jeg bibeholdt tallet så det ikke ændres fra 9208606203199067 til 9.20861E+15
Synes godt om
Ny brugerNybegynder
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.