Omvandla matrisdata till
kolumn- & raddata

I detta tips demonstreras en avancerad teknik för att omvandla matrisdata till antingen kolumn- eller raddata.

Tekniken kan vara lämplig om vi t ex ska exportera data från XL och där det andra programmet kräver en viss uppställning av data för att kunna läsa in det korrekt.

En annan situation är om vi vill överföra data från ett blad till ett annat med två skilda uppställningar i en och samma arbetsbok.


Exemplet:

Option Explicit

Sub Omvandla_MatrisData_Kolumn()
'© 2001 Alla rättigheter XL-Dennis
Dim rnOmrade As Range
Dim i As Long
Dim j As Long
Dim k As Long


Application.ScreenUpdating = False

'Här identifieras/dimensioneras datamatrisens storlek
With Worksheets("Blad2")
          Set rnOmrade = .Range(.Cells(2, 2), .Cells(Rows.Count, 2).End(xlUp))
          Set rnOmrade = rnOmrade.Resize(, 4)
End With

'Slutligen förs data över till kolumn B
k = 0
With Worksheets("Blad1")
            For j = 1 To rnOmrade.Rows.Count
                 For i = 1 To rnOmrade.Columns.Count
                     k = k + 1
                    .Cells(k, "B").Value = rnOmrade(j, i).Value
                 Next i
            Next j
End With

Application.ScreenUpdating = True
End Sub


För att överföra data till rad 2 i exemplet ersätts raden i ovanstående procedur: