excel-vba
Nazwane zakresy
Szukaj…
Wprowadzenie
Zdefiniuj nazwany zakres
Korzystanie z nazwanych zakresów pozwala opisać znaczenie zawartości komórki (komórek) i użyć tej zdefiniowanej nazwy zamiast rzeczywistego adresu komórki.
Na przykład formułę =A5*B5
można zastąpić wartością =Width*Height
aby uczynić formułę znacznie łatwiejszą do odczytania i zrozumienia.
Aby zdefiniować nowy nazwany zakres, wybierz komórkę lub komórki do nazwania, a następnie wpisz nową nazwę w polu Nazwa obok paska formuły.
Uwaga: Domyślnie zakresy nazwane mają zasięg globalny, co oznacza, że można do nich uzyskać dostęp z dowolnego miejsca w skoroszycie. Starsze wersje programu Excel pozwalają na powielanie nazw, dlatego należy zachować ostrożność, aby zapobiec powielaniu nazw o zasięgu globalnym, w przeciwnym razie wyniki będą nieprzewidywalne. Użyj Menedżera nazw z zakładki Formuły, aby zmienić zakres.
Korzystanie z nazwanych zakresów w VBA
Utwórz nowy nazwany zakres o nazwie „MyRange” przypisany do komórki A1
ThisWorkbook.Names.Add Name:="MyRange", _
RefersTo:=Worksheets("Sheet1").Range("A1")
Usuń zdefiniowany nazwany zakres według nazwy
ThisWorkbook.Names("MyRange").Delete
Uzyskaj dostęp do nazwanego zakresu według nazwy
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Sheet1").Range("MyRange")
Call MsgBox("Width = " & rng.Value)
Uzyskaj dostęp do nazwanego zakresu za pomocą skrótu
Tak jak każdy inny zakres , do nazwanych zakresów można uzyskać bezpośredni dostęp za pomocą notacji skrótowej, która nie wymaga utworzenia obiektu Range
. Trzy wiersze powyższego fragmentu kodu można zastąpić jednym wierszem:
Call MsgBox("Width = " & [MyRange])
Uwaga: Domyślną właściwością zakresu jest jego wartość, więc
[MyRange]
jest taki sam jak[MyRange].Value
Możesz także wywoływać metody z zakresu. Następujące wybiera MyRange
:
[MyRange].Select
Uwaga: jednym zastrzeżeniem jest to, że notacja skrótowa nie działa ze słowami, które są używane gdzie indziej w bibliotece VBA. Na przykład zakres o nazwie
Width
nie byłby dostępny jako[Width]
ale działałby zgodnie z oczekiwaniami, gdyby był dostępny za pośrednictwemThisWorkbook.Worksheets("Sheet1").Range("Width")
Zarządzaj nazwanymi zakresami za pomocą Menedżera nazw
Karta Formuły> grupa Zdefiniowane nazwy> przycisk Menedżer nazw
Named Manager pozwala na:
- Utwórz lub zmień nazwę
- Utwórz lub zmień odwołanie do komórki
- Utwórz lub zmień zakres
- Usuń istniejący nazwany zakres
Nazwany menedżer zapewnia przydatne szybkie wyszukiwanie uszkodzonych linków.
Nazwane tablice zasięgu
Przykładowy arkusz
Kod
Sub Example()
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
Dim units As Range
Set units = ThisWorkbook.Names("Units").RefersToRange
Worksheets("Sheet1").Range("Year_Max").Value = WorksheetFunction.Max(units)
Worksheets("Sheet1").Range("Year_Min").Value = WorksheetFunction.Min(units)
End Sub
Wynik