23. april 2006 - 18:27Der er
5 kommentarer og 2 løsninger
Navngiv variabelt område med VBA
Jeg har et Dataområde, der variere i størrelse (antallet af rækker) afhængig af data, der hentes ind. Derfor søger jeg en makro, der definere området (fx. Range("B1", Range("H1").End(xlDown)).Select) og navnegiver dette område med fx. DATA.
Problemet kan være, at navnet DATA i forvejen er brugt (defineret) ved en tidligere indlæsning. Derfor skal makroen tage højde for dette.
Håber, at én kan hjælpe mig. På forhånd tak for hjælpen.
Den pæne løsning uden select, om som sletter DATA, hvis det findes i forvejen Public Sub NameItData() Const sRNG_DATA As String = "DATA" If NameExists(ThisWorkbook, sRNG_DATA) Then ThisWorkbook.Names(sRNG_DATA).Delete ThisWorkbook.Names.Add Name:=sRNG_DATA, RefersTo:=Range("B1", Range("H65536").End(xlUp)) End Sub
Private Function NameExists(ByRef WB As Excel.Workbook, _ ByRef WhatName As String) As Boolean
On Error Resume Next NameExists = Len(WB.Names(WhatName).Name) <> 0 On Error GoTo 0 End Function
Den hurtige og knapt så kønne Public Sub NameItData() Const sRNG_DATA As String = "Data" On Error Resume Next ThisWorkbook.Names(sRNG_DATA).Delete ThisWorkbook.Names.Add Name:=sRNG_DATA, RefersTo:=Range("B1", Range("H65536").End(xlUp)) End Sub
Man kan selvfølgelig også bruge select - men det gør man jo aldrig, da det altid vil være den langsomme løsning.
:-) Den hurtige metode - det var blot hurtigt kodemæssigt - den jeg ville bruge er den første.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.