15. december 2019 - 11:41Der er
12 kommentarer og 1 løsning
Kopier række og sæt ind under række med bestemt værdi
Hej Jeg vil gerne sætte række 2 ind under den række hvor en bestemt værdi optræder. I A1 har jeg den værdi jeg gerne vil finde. Den skal findes i kolonne B, når værdien er fundet skal der sættes en række ind under værdien og række 2 skal kopiers ned i den nye række, makroen skal kører 20 gange. Er det muligt?
Hvor står dine originale linje - måske det blot er mig der ikke forstår, men det lyder som om at række to forsvinder, og hvilken række skal så tages? Hvis det hele kører fra samme ark så kan du jo risikere at din række to bliver sat in som række tre, og derfor bliver til række to når den gamle forsvinder.
Hej Kim1a Nej jeg har ca. 1.000 rækker. Jeg ønsker at flytte værdien i række 2 til rækken under, hvor en bestemt værdi optræder. Den samme værdi, f.eks. 5010 optræder 20 gange. Så alle de steder hvor værdien 5009 optræder skal der sættes en linje ind under den og værdien i række 2 skal sættes ind i den nye linje.
For x = 3 To intLastRow If Range(2, x).Value = strA!Value Then Range("2:2").Copy Range(x + 1).Insert intLastRow = intLastRow + 1 End If
Next
End Sub
Jeg var lidt i tvivl om det altid ville være tal i A1, så jeg lod variablen være en tekststreng. Derudover håber jeg at jeg løste hvor langt den skal køre ned, det bør du overveje, fordi du hver gang du indsætter en linje jo laver hele datasættet en linje længere end oprindelig.
#7 Nej strengens variabel er her navngivet "strA1Value", ikke noget punktum (og forvirring om udråbstegn).
Det må være fordi vi sætter en værdi (value) = en string tænker jeg? Er det altid tal i din A1 celle? Er det heltal så vi kan lave det om til en integer? Måske er dine værdier i B forskellige fra A1, selvom det er tal?
Sub Test() Dim SidsteRække As Integer SidsteRække = Range("B" & Rows.Count).End(xlUp).Row For Rk = SidsteRække To 6 Step -1 If Range("B" & Rk) = Range("A1") Then Rows(Rk + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Rows(Rk + 1).Value = Rows(2).Value End If Next i End Sub
Hej Kim1a Det virker desværre ikke. Det er samme talformat i A1 og kolonne B, det er hel tal.
Mange tak store-morten, det virker perfekt, dog vil jeg gerne have at den indsætter den formel der er i linje 2 og ikke indsætter det som værdi (tekst) er det muligt?
Sub Test2() Dim SidsteRække As Integer SidsteRække = Range("B" & Rows.Count).End(xlUp).Row For Rk = SidsteRække To 6 Step -1 If Range("B" & Rk) = Range("A1") Then Rows(Rk + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Rows(2).Copy _ Destination:=Rows(Rk + 1) End If Next Rk End Sub
TUSIND TAK store-morten, det var præcist hvad jeg ønsker mig. Nu kan det kun blive en god jul. Rigtig glædelig jul og godt nytår
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.