Fylla tomma celler


Ibland händer det att vi arbetar med importerad data eller med annan typ av lista där varannan post e d saknar önskade uppgifter såsom nedanstående bild visar:

 

 

Är listan omfattande och varannan rad  ska kompletteras är det önskvärt med en smidigt lösning. I detta tips demonstreras en teknik vilken bygger på att användaren markerar området, i exemplet A2:A6, och exekverar nedanstående procedur

 

Om ett felmeddelande erhålls vid kopiering till VBA-modul så läs mer här»
 

 

(© 2002 - 2004 All rights Colo - Used by permission)

Option Explicit

 

Sub Fylla_i_tomma_Celler()

   '© 2004 Alla rättigheter XL-Dennis

   Dim wsSheet As Worksheet

   Dim rnData1 As Range, rnData2 As Range

 

   Set wsSheet = ActiveSheet

   'Kontroll att förutsättningarna är uppfyllda.

   If wsSheet.ProtectContents = True Then

      MsgBox "Det aktiva arbetsbladet är låst.", vbCritical

      Exit Sub

   ElseIf Selection.Cells.Count = 1 Then

      MsgBox "Antal markerade celler måste vara fler än 1.", vbCritical

      Exit Sub

   ElseIf Selection.Columns.Count > 1 Then

      MsgBox "Endast en kolumn kan markeras.", vbCritical

      Exit Sub

   End If

 

   Set rnData1 = Selection

 

   'Tildelar variabeln rnData2 de celler som är tomma i cellområdet rnData1.

   On Error Resume Next

   Set rnData2 = rnData1.SpecialCells(xlCellTypeBlanks)

   On Error GoTo 0

 

   If rnData2 Is Nothing Then

      MsgBox "Inga tomma celler funna i det markerade området.", vbCritical

      Exit Sub

   End If

 

   'Tilldelar de tomma cellerna en formel som refererar till ovanstående cell.

   rnData2.FormulaR1C1 = "R[-1]C"

   'Omvandlar formlerna till konstanta värden.

   rnData1.Value = rnData1.Value  

End Sub