Hämta data från diskontinuerliga cellområden

Här demonstreras en teknik för att hämta data från ett diskontinuerligt cellområde. Det sker mha av en två-dimensionell matris (array), vars data därefter skrivs till ett annat arbetsblad i den aktiva arbetsboken.

Se också Diskontinuerlig markering av celler.

Option Explicit  

Sub Datafångst_Diskontinuerlig_Markering()

   '© 2002 Alla rättigheter XL-Dennis

   Dim wsBlad As Worksheet

   Dim wbBok As Workbook

   Dim rnCell As Range

   Dim va2Matris() As Variant

   Dim i As Long

 

   Set wbBok = ThisWorkbook

   Set wsBlad = wbBok.Worksheets("Blad2")

 

   'Kontroll av antalet markerade cellområden.

   If Selection.Areas.Count < 2 Then

      MsgBox "Antal cellområden måste vara fler än 1.", vbInformation

      Exit Sub

   End If

 

   'Dimensionerar matrisen till antal celler i den diskontinuerliga cellmarkeringen.

   ReDim va2Matris(1 To Selection.Cells.Count, 1 To 2)

   i = 1

 

   'Tilldelar matrisen värdena i den diskontinuerliga cellmarkeringen och utför en beräkning.

   For Each rnCell In Selection

      va2Matris(i, 1) = rnCell.Value

      va2Matris(i, 2) = Int(rnCell.Value / 2)

      i = i + 1

   Next rnCell

 

   'Skriver ut matrisvärdena till Blad2.

   With wsBlad

      .Range("A1:B" & (i - 1)).Value = va2Matris

   End With

 End Sub