Hantera namn i VBA


Här demonstreras tekniker för kontroll om aktiv cell är inom ett namngivet cellområde och om ett namn existerar eller inte.

Se också följande andra tips:


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

 

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

 

'Om aktiv cell är inom ett namngivet cellområde:

Option Explicit  

Sub Kontroll_Inom_Namnomrade()

   '© 2003 Alla rättigheter XL-Dennis

   Dim wbBok As Workbook

   Dim rnName As Range

   Dim nName As Name

 

   Set wbBok = ThisWorkbook

 

   'Här loopar vi igenom arbetsbokens alla namn.

   For Each nName In wbBok.Names

      'Ifall namn refererar till konstanter eller formler.

      On Error Resume Next

      Set rnName = Nothing

 

      Set rnName = nName.RefersToRange

 

      If Not rnName Is Nothing Then

         If Not Application.Intersect(rnName, ActiveCell) Is Nothing Then

            MsgBox "Den aktiva cellen är inom cellområdet: " & rnName.Name.Name

         End If

      End If  

   Next nName  

End Sub

 

'Om ett namn existerar eller inte i den aktiva arbetsbokens namnlista:

Option Explicit  

Sub Existerar_Namn()

   Dim stNamn As String  

   stNamn = "RnData"

 

   If ExistNamn(stNamn) = True Then

      MsgBox "Namnet existerar!", vbInformation

   Else

      MsgBox "Namnet existerar inte!", vbInformation

   End If

 End Sub

 

 Function ExistNamn(Namn As String) As Boolean

   '© 2003 Alla rättigheter XL-Dennis

   On Error Resume Next

   ExistNamn = Len(ActiveWorkbook.Names(Namn).RefersToRange.Address) > 0

End Function