Simpel makro i Open office Calc (Mac OSX 10.7.4)
Jeg ønsker at sammenligne to kolonner (A) og (B).Værdierne i de to kolonner er typisk at den ene kolonne (A) indeholder alle værdier (min item master), og den anden indeholder en delmængde - feks. sales history last 6 months med flere kolonner (B til F).
ved sammenligningen skal A og B sammenlignes og værdierne fra (B) placere sig så de står i samme række som tilsvarer cellerne i item masteren. Cellerne i C, D, E og F skal følge med (B).
eksempel efter "run":
A B C D E F
ABE ABE 4 5 5 6
ABF
ABG ABG 3 6 0 5
ABH
ABI ABI 17 21 4 7
ABJ
ABK
ABL ABL 2 5 0 8
Jeg er ikke nogen haj til makro programmering men lidt basic VBA har jeg brugt for mange år siden, men det er lidt anderledes på Open office.
Jeg forestiller mig at bruge insert af tomme celler hvis der ikke er match mellem celle A og B.
Jeg fandt (desværre husker jeg ikke oprindelsen) denne kode, som virker i Excel, men ikke i OO og som iøvrigt kun er for de to kolonner (A) og (B):
Option Explicit
Sub Isolate()
Dim lastA, lastB, shortCol, rw As Integer
'Determine short column so we know when to stop
lastA = WorksheetFunction.CountA(Range("A:A"))
lastB = WorksheetFunction.CountA(Range("B:B"))
If lastA > lastB Then _
shortCol = 2 Else shortCol = 1
'Set First Check Row
rw = 1
nxtChk:
'Check Column A against Column B, Row by Row
'Insert cell at non-matching data
If Cells(rw, 1) <> "" And Cells(rw, 1) < Cells(rw, 2) Then
Cells(rw, 2).Insert shift:=xlDown
Else
If Cells(rw, 2) <> "" And Cells(rw, 1) > Cells(rw, 2) Then
Cells(rw, 1).Insert shift:=xlDown
End If
End If
'If there is nothing left to check in the Short Column, we're done
If Cells(Rows.Count, shortCol).End(xlUp).Row + 1 = rw Then Exit Sub
'If not, increment Row counter and loop
rw = rw + 1
GoTo nxtChk
End Sub
På forhånd tak