27. marts 2009 - 09:42Der er
4 kommentarer og 1 løsning
Excel macro konverter linier til flere linier afhængig af værdi i oprindelige linier
Hej eksperter,
Jeg har forsøgt lidt frem og tilbage men uden held og tror jeg behøver en skræddersyet VBA macro :(
Er det muligt at lave en macro der kan konvertere følgende array fra linier med værdier fra 1 og opefter i sidste kolonne én lang list af linier med værdien 1 i hver, jeg illustrerer input:
fange hver linie, se i kolonne Qty, hvis over en kopiere linien og indsætte antal gang som der er Qty mens Qty for hver af disse linier ændres til 1... dvs. output:
Virksomheder er på vej fra store sprogmodeller, der svarer på spørgsmål, til AI-agenter, der kan udføre opgaver på egen hånd. Det gør teknologien mere nyttig – og langt mere risikabel.
Tusind tak for hurtig svar, dog har jeg en lille fejl jeg ikke kan grejle hvorfor, output giver en linie for meget for alle linier der havde Qty over 1:
Sub Macro1() xllin = 2 Do While Trim(Sheets("Sheet1").Range("A" & xllin)) <> "" If Sheets("Sheet1").Range("D" & xllin) > 1 Then nylin = Sheets("Sheet1").Range("D" & xllin) Sheets("Sheet1").Range("D" & xllin) = 1 Sheets("Sheet1").Range("A" & xllin & ":D" & xllin).Copy Sheets("Sheet1").Range("A" & (xllin + 1) & ":A" & (xllin + nylin)).Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False xllin = xllin + nylin nylin = 0 End If xllin = xllin + 1 Loop End Sub
For eksempel så får denne korrekt: Input A1 B1 C3 1 Output A1 B1 C3 1
Men med mere end 1: Input A1 B1 C1 2 Output A1 B1 C1 1 A1 B1 C1 1 A1 B1 C1 1
Der skulle kun være 2 linier i output... har det noget med Sheets("Sheet1").Range("A" & xllin & ":D" & xllin).Copy der skal have D - 1?
Det er fordi jeg så har misforstået opgaven. Når du skriver "hvis over en kopiere linien og indsætte antal gang som der er Qty" indsætter jeg jo 2 når der står Qty=2 Du vil have indsat Qty-1.
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.