13. februar 2012 - 10:11Der er
5 kommentarer og 1 løsning
slette række i excel
Hej Eksperter,
Jeg har et ark med bl.a. indeholdende beløb og ID. Jeg vil gerne lavet et lille program der sletter en given linje hvis beløbet og ID'et er ens på linjen ovenover.
Eksempel:
1 Text beløb ID 2 XXXX 123 456 3 XXXX 123 456
Nu vil jeg gerne slette linje 3 og efterfølgende gå videre til næste linje.
Ved dog ikke om der skal tages en form for hensyn til teksten i kolonne 1 og/eller om det er den øverste eller nederste linie der skal gemmes, men det kan du jo lige vende tilbage med...
Sub slet_rækker()
Dim Bel As Long Dim ID As Long Dim RK As Long Dim RK1 As Long
RK = 2 RK1 = RK + 1 Do Bel = Cells(RK, 2) ID = Cells(RK, 3) If Cells(RK1, 2) = Bel And Cells(RK1, 3) = ID Then Cells(RK, 1).Select Selection.EntireRow.Delete Else RK = RK + 1 RK1 = RK + 1 End If Loop Until Cells(RK, 1) = "" End Sub
Okay cool, jeg prøver mig lige frem. VEd ikke om det gør den store forskel i koden men det er den føste/øverste linje som skal gemmes. Og taksten skal ikke inkluderes.
Mange tak for hjælpen. Vender lige tilbage når jeg har fået det til at virke :)
Hvad er det for tal der indtastes i felterne T_Amount og B_A_No?
Når du benytter "Long" må der nemlig kun stå tal og ingen bogstaver, bare for at nævne et eksempel og sådan en type af fejl kan nemt resultere i fejlen "overflow"
Hvis der er bogstaver med i et af de to felter skal du i stedet benytte dig af "String" og ikke "Long" så bør det kunne fungere.
Som makroen er lavet nu vil det være den øverste række der slettes, men prøv med nedenstående kode, så tror jeg den skulle fungere og ellers vender du bare frygteligt tilbage ;-)
Og ja RK står for række i mit oplæg.
Sub slet_rækker()
Dim T_Amount As Long Dim B_A_No As Long Dim RK As Long Dim RK1 As Long
RK = 2 RK1 = RK + 1 Do T_Amount = Cells(RK, 4) B_A_No = Cells(RK, 6) Cells(RK, 1).Select If Cells(RK1, 4) = T_Amount And Cells(RK1, 6) = B_A_No Then Cells(RK1, 1).Select Selection.EntireRow.Delete RK = RK + 1 RK1 = RK + 1 Else RK = RK + 1 RK1 = RK + 1 End If Loop Until Cells(RK, 1) = "" End Sub
Beklager det sene tilbagesvar. Koden virker efter hensigten, mange tak for hjælpen. Har dog været nødt til at ændre long til string før den virkerde selvom der kun er tale om tal i de to kolonner.
Et stk svar fra mig til dig. Glad for at du trods alt fik det til at fungere :-)
Med venlig hilsen
Henrik
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.