<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FExcel%2FName</id>
		<title>VBA/Excel/Access/Word/Excel/Name - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VBA%2FExcel%2FAccess%2FWord%2FExcel%2FName"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Name&amp;action=history"/>
		<updated>2026-04-06T07:47:19Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Name&amp;diff=1586&amp;oldid=prev</id>
		<title> в 16:33, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Name&amp;diff=1586&amp;oldid=prev"/>
				<updated>2010-05-26T16:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:33, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Name&amp;diff=1587&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VBA/Excel/Access/Word/Excel/Name&amp;diff=1587&amp;oldid=prev"/>
				<updated>2010-05-26T12:47:33Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Adding Comments for a name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub addcomment()&lt;br /&gt;
    ActiveWorkbook.Worksheets(&amp;quot;Sheet7&amp;quot;).Names(&amp;quot;LocalOffice&amp;quot;).rument = &amp;quot;text&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A name can also store the data stored in an array.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub NamedArray()&lt;br /&gt;
    Dim myArray(10, 5)&lt;br /&gt;
    Dim i As Integer, j As Integer&lt;br /&gt;
    For i = 1 To 10&lt;br /&gt;
        For j = 1 To 5&lt;br /&gt;
            myArray(i, j) = i + j&lt;br /&gt;
        Next j&lt;br /&gt;
    Next i&lt;br /&gt;
    Names.add name:=&amp;quot;FirstArray&amp;quot;, RefersTo:=myArray&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Checking for the Existence of a Name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Function NameExists(FindName As String) As Boolean&lt;br /&gt;
    Dim Rng As Range&lt;br /&gt;
    Dim myName As String&lt;br /&gt;
    On Error Resume Next&lt;br /&gt;
    myName = ActiveWorkbook.Names(FindName).Name&lt;br /&gt;
    If Err.Number = 0 Then&lt;br /&gt;
        NameExists = True&lt;br /&gt;
    Else&lt;br /&gt;
        NameExists = False&lt;br /&gt;
    End If&lt;br /&gt;
End Function&lt;br /&gt;
            &lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Check Name existance==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub Main()&lt;br /&gt;
  If NameExists(&amp;quot;SalesData&amp;quot;) Then&lt;br /&gt;
    MsgBox &amp;quot;Name Exists&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    MsgBox &amp;quot;Name does not exist&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
End Sub&lt;br /&gt;
Function NameExists(myName As String) As Boolean&lt;br /&gt;
  Dim X As String&lt;br /&gt;
  On Error Resume Next&lt;br /&gt;
  X = Names(myName).RefersTo&lt;br /&gt;
  If Err.Number &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
    NameExists = False&lt;br /&gt;
    Err.Clear&lt;br /&gt;
  Else&lt;br /&gt;
    NameExists = True&lt;br /&gt;
  End If&lt;br /&gt;
End Function&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Define a name by hard code the cell address==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub DefineName1a()&lt;br /&gt;
  ActiveWorkbook.names.Add Name:=&amp;quot;NameArea&amp;quot;, RefersToR1C1:=&amp;quot;=sheet1!R1C1:R3C1&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Determining which Names Overlap a Range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Sub SelectionEntirelyInNames()&lt;br /&gt;
         Dim sMessage As String&lt;br /&gt;
         Dim nmName As name&lt;br /&gt;
         Dim rngNameRange As range&lt;br /&gt;
         Dim rng As range&lt;br /&gt;
         On Error Resume Next&lt;br /&gt;
         For Each nmName In Names&lt;br /&gt;
             Set rngNameRange = Nothing&lt;br /&gt;
             Set rngNameRange = nmName.RefersToRange&lt;br /&gt;
             If Not rngNameRange Is Nothing Then&lt;br /&gt;
                 If rngNameRange.Parent.name = ActiveSheet.name Then&lt;br /&gt;
                    Set rng = Intersect(Selection, rngNameRange)&lt;br /&gt;
                    If Not rng Is Nothing Then&lt;br /&gt;
                        If Selection.Address = rng.Address Then&lt;br /&gt;
                            sMessage = sMessage &amp;amp; nmName.name &amp;amp; vbCr&lt;br /&gt;
                        End If&lt;br /&gt;
                    End If&lt;br /&gt;
                 End If&lt;br /&gt;
             End If&lt;br /&gt;
         Next nmName&lt;br /&gt;
         If sMessage = &amp;quot;&amp;quot; Then&lt;br /&gt;
             MsgBox &amp;quot;The selection is not entirely in any name&amp;quot;&lt;br /&gt;
         Else&lt;br /&gt;
             MsgBox sMessage&lt;br /&gt;
         End If&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enables access to named ranges in arbitrary workbooks==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub ChangeValueInNamedCell2()&lt;br /&gt;
  Dim rng As Range&lt;br /&gt;
  Set rng = Evaluate(ActiveWorkbook.names(&amp;quot;CellXy&amp;quot;).Name)&lt;br /&gt;
  rng.Value = &amp;quot;This is a named cell.&amp;quot;&lt;br /&gt;
  Debug.Print rng.Value&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fill named range with values==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub FillNameArea1()&lt;br /&gt;
  Application.Goto Reference:=ActiveWorkbook.Names(&amp;quot;NameArea&amp;quot;).Name&lt;br /&gt;
  Selection.value = &amp;quot;Test1&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
Sub FillNameArea2()&lt;br /&gt;
  Evaluate(ActiveWorkbook.Names(&amp;quot;NameArea&amp;quot;).value).value = &amp;quot;Test2&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==find out which names are overlapping the selected cells, regardless of whether they entirely contain the selected cells==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Sub NamesOverlappingSelection()&lt;br /&gt;
         Dim sMessage As String&lt;br /&gt;
         Dim nmName As name&lt;br /&gt;
         Dim rngNameRange As range&lt;br /&gt;
         Dim rng As range&lt;br /&gt;
         On Error Resume Next&lt;br /&gt;
         For Each nmName In Names&lt;br /&gt;
             Set rngNameRange = Nothing&lt;br /&gt;
             Set rngNameRange = range(nmName.name)&lt;br /&gt;
             If Not rngNameRange Is Nothing Then&lt;br /&gt;
                 If rngNameRange.Parent.name = ActiveSheet.name Then&lt;br /&gt;
                    Set rng = Intersect(Selection, rngNameRange)&lt;br /&gt;
                    If Not rng Is Nothing Then&lt;br /&gt;
                            sMessage = sMessage &amp;amp; nmName.name &amp;amp; vbCr&lt;br /&gt;
                    End If&lt;br /&gt;
                 End If&lt;br /&gt;
             End If&lt;br /&gt;
         Next nmName&lt;br /&gt;
         If sMessage = &amp;quot;&amp;quot; Then&lt;br /&gt;
             MsgBox &amp;quot;The selection is not entirely in any name&amp;quot;&lt;br /&gt;
         Else&lt;br /&gt;
             MsgBox sMessage&lt;br /&gt;
         End If&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Generate named range from Range object==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub BuildNameFromRange()&lt;br /&gt;
  Dim rng As Range&lt;br /&gt;
  Set rng = ActiveWorkbook.Sheets(&amp;quot;sheet1&amp;quot;).[A1].CurrentRegion&lt;br /&gt;
  ActiveWorkbook.Names.Add Name:=&amp;quot;NameArea&amp;quot;, RefersTo:=&amp;quot;=&amp;quot; + rng.Address(External:=True)&lt;br /&gt;
  Debug.Print Range(&amp;quot;NameArea&amp;quot;).Address(External:=True)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Generate Range object from named range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub BuildRangeFromName()&lt;br /&gt;
  Dim rng As Range&lt;br /&gt;
  Set rng = Evaluate(ActiveWorkbook.names(&amp;quot;NameArea&amp;quot;).Value)&lt;br /&gt;
  Debug.Print rng.Address(External:=True)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Go to a name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub GotoName2()&lt;br /&gt;
  Application.Goto Reference:= ActiveWorkbook.names(&amp;quot;NameArea&amp;quot;).Name, Scroll:=True&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hide a name by setting its Visible property to False==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub nameRef()&lt;br /&gt;
     Names.add name:=&amp;quot;StoreNumber&amp;quot;, RefersTo:=v, Visible:=False&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Hide the name after it has been created:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub vis()&lt;br /&gt;
     Names(&amp;quot;StoreNumber&amp;quot;).Visible = False&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Insert hidden name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Public Sub InsertHiddenName()&lt;br /&gt;
  Names.Add Name:=&amp;quot;PassWord&amp;quot;, RefersTo:=&amp;quot;Bazonkas&amp;quot;, Visible:=False&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Is Name In Workbook==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Option Explicit&lt;br /&gt;
Public Function IsNameInWorkbook(ByVal Name As String) As Boolean&lt;br /&gt;
   Dim X As String&lt;br /&gt;
   Dim aRange As Range&lt;br /&gt;
  &lt;br /&gt;
   Application.Volatile&lt;br /&gt;
   On Error Resume Next&lt;br /&gt;
   Set aRange = Application.Caller&lt;br /&gt;
   Err.Clear&lt;br /&gt;
   &lt;br /&gt;
   If aRange Is Nothing Then&lt;br /&gt;
      X = ActiveWorkbook.Names(Name).Name&lt;br /&gt;
   Else&lt;br /&gt;
      X = aRange.Parent.Parent.Names(Name).Name&lt;br /&gt;
   End If&lt;br /&gt;
   &lt;br /&gt;
   If Err.Number = 0 Then IsNameInWorkbook = True&lt;br /&gt;
End Function&lt;br /&gt;
Public Sub TestName()&lt;br /&gt;
  If IsNameInWorkbook(InputBox(&amp;quot;What Name&amp;quot;)) Then&lt;br /&gt;
    MsgBox &amp;quot;Name exists&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    MsgBox &amp;quot;Name does not exist&amp;quot;&lt;br /&gt;
  End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Names Overlapping Selection==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Public Sub NamesOverlappingSelection()&lt;br /&gt;
  Dim Message As String&lt;br /&gt;
  Dim aName As Name&lt;br /&gt;
  Dim NameRange As Range&lt;br /&gt;
  Dim aRange As Range&lt;br /&gt;
 &lt;br /&gt;
  On Error Resume Next&lt;br /&gt;
  For Each aName In Names&lt;br /&gt;
    Set NameRange = Nothing&lt;br /&gt;
    Set NameRange = Range(aName.Name)&lt;br /&gt;
    If Not NameRange Is Nothing Then&lt;br /&gt;
      If NameRange.Parent.Name = ActiveSheet.Name Then&lt;br /&gt;
        Set aRange = Intersect(Selection, NameRange)&lt;br /&gt;
        If Not aRange Is Nothing Then&lt;br /&gt;
          Message = Message &amp;amp; aName.Name &amp;amp; vbCr&lt;br /&gt;
        End If&lt;br /&gt;
      End If&lt;br /&gt;
    End If&lt;br /&gt;
  Next aName&lt;br /&gt;
  If Message = &amp;quot;&amp;quot; Then&lt;br /&gt;
    Debug.Print &amp;quot;No Names are overlapping the selection&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    Debug.Print Message&lt;br /&gt;
  End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Range objects cannot be used with an worksheet object as superobject==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub ChangeValueInNamedCell1()&lt;br /&gt;
  Range(&amp;quot;CellXy&amp;quot;).Value = &amp;quot;CellXy&amp;quot;&lt;br /&gt;
  Debug.Print Range(&amp;quot;CellXy&amp;quot;).Value&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retrieving Values Stored as a Workbook Name Using the Evaluate Method==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub TestWorkbookNameValue() &lt;br /&gt;
    Dim vValue As Variant &lt;br /&gt;
    vValue = Application.Names(&amp;quot;SalesTaxRate&amp;quot;).RefersTo &lt;br /&gt;
    Debug.Print &amp;quot;Value retrieved using RefersTo: &amp;quot; &amp;amp; vValue &lt;br /&gt;
End Sub &lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Searching for a Name==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Function IsNameInWorkbook(sName As String) As Boolean&lt;br /&gt;
         Dim s As String&lt;br /&gt;
         Dim rng As range&lt;br /&gt;
         Application.Volatile&lt;br /&gt;
         On Error Resume Next&lt;br /&gt;
         Set rng = Application.Caller&lt;br /&gt;
         Err.clear&lt;br /&gt;
         If rng Is Nothing Then&lt;br /&gt;
             s = ActiveWorkbook.Names(sName).name&lt;br /&gt;
         Else&lt;br /&gt;
             s = rng.Parent.Parent.Names(sName).name&lt;br /&gt;
         End If&lt;br /&gt;
         If Err.Number = 0 Then IsNameInWorkbook = True&lt;br /&gt;
     End Function&lt;br /&gt;
     Sub TestName()&lt;br /&gt;
           If IsNameInWorkbook(InputBox(&amp;quot;What Name&amp;quot;)) Then&lt;br /&gt;
           MsgBox &amp;quot;Name exists&amp;quot;&lt;br /&gt;
           Else&lt;br /&gt;
           MsgBox &amp;quot;Name does not exist&amp;quot;&lt;br /&gt;
           End If&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Searching for the Name of a Range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     Sub TestNameOfRange()&lt;br /&gt;
         Dim nmName As name&lt;br /&gt;
         On Error Resume Next&lt;br /&gt;
         Set nmName = Selection.name&lt;br /&gt;
         If nmName Is Nothing Then&lt;br /&gt;
             MsgBox &amp;quot; Selection has no name&amp;quot;&lt;br /&gt;
         Else&lt;br /&gt;
             MsgBox nmName.name&lt;br /&gt;
         End If&lt;br /&gt;
     End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selection Entirely In Names==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Public Sub SelectionEntirelyInNames()&lt;br /&gt;
  Dim Message As String&lt;br /&gt;
  Dim aName As Name&lt;br /&gt;
  Dim NameRange As Range&lt;br /&gt;
  Dim aRange As Range&lt;br /&gt;
  On Error Resume Next&lt;br /&gt;
  &lt;br /&gt;
  For Each aName In Names&lt;br /&gt;
    Set NameRange = Nothing&lt;br /&gt;
    Set NameRange = aName.RefersToRange&lt;br /&gt;
    If Not NameRange Is Nothing Then&lt;br /&gt;
      If NameRange.Parent.Name = ActiveSheet.Name Then&lt;br /&gt;
        Set aRange = Intersect(Selection, NameRange)&lt;br /&gt;
        If Not aRange Is Nothing Then&lt;br /&gt;
          If Selection.Address = aRange.Address Then&lt;br /&gt;
            Message = Message &amp;amp; aName.Name &amp;amp; vbCr&lt;br /&gt;
          End If&lt;br /&gt;
        End If&lt;br /&gt;
      End If&lt;br /&gt;
    End If&lt;br /&gt;
  Next aName&lt;br /&gt;
  If Message = &amp;quot;&amp;quot; Then&lt;br /&gt;
    MsgBox &amp;quot;The selection is not entirely in any name&amp;quot;&lt;br /&gt;
  Else&lt;br /&gt;
    MsgBox Message&lt;br /&gt;
  End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Select named range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub GotoName1()&lt;br /&gt;
  Application.Goto Reference:= _&lt;br /&gt;
    ActiveWorkbook.names(&amp;quot;NameArea&amp;quot;).Name&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==specify that the Names collection belongs to a worksheet:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub nameAdd()&lt;br /&gt;
    Worksheets(&amp;quot;Sheet1&amp;quot;).Names.add name:=&amp;quot;F&amp;quot;, RefersToR1C1:=&amp;quot;=Sheet1!R1C1:R6C6&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Store formulas into names. The formula must start with an equals sign (=).==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub addName()&lt;br /&gt;
     Names.add name:=&amp;quot;ItemsInA&amp;quot;, RefersTo:=&amp;quot;=COUNTA($A:$A)&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==storing a formula in a name is the same as for a range==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub addName()&lt;br /&gt;
    Names.add name:=&amp;quot;Product&amp;quot;, RefersTo:=&amp;quot;=OFFSET(Sheet2!$A$2,0,0,COUNTA(Sheet2!$A:$A))&amp;quot;&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Storing Values in Names==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub var()&lt;br /&gt;
     Dim v As Variant&lt;br /&gt;
     v = 3.14159&lt;br /&gt;
     Names.add name:=&amp;quot;StoreNumber&amp;quot;, RefersTo:=v&lt;br /&gt;
     v = &amp;quot;Sales&amp;quot;&lt;br /&gt;
     Names.add name:=&amp;quot;StoreString&amp;quot;, RefersTo:=v&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==use names to store numbers between sessions==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub store()&lt;br /&gt;
    NumofSales = 5123&lt;br /&gt;
    Names.add name:=&amp;quot;TotalSales&amp;quot;, RefersTo:=NumofSales&lt;br /&gt;
     &amp;quot;Or use this:&lt;br /&gt;
    Names.add name:=&amp;quot;TotalSales&amp;quot;, RefersTo:=5123&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==use the Evaluate method equivalent to evaluate the name in VBA:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub itemA()&lt;br /&gt;
     Names.add name:=&amp;quot;ItemsInA&amp;quot;, RefersTo:=&amp;quot;=COUNTA($A:$A)&amp;quot;&lt;br /&gt;
     MsgBox [ItemsInA]&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using named ranges of cells==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Option Explicit&lt;br /&gt;
Sub DefineName1()&lt;br /&gt;
  Range(&amp;quot;A3:B5&amp;quot;).Name = &amp;quot;TestArea&amp;quot;&lt;br /&gt;
  Debug.Print Range(&amp;quot;TestArea&amp;quot;).Address(External:=True)&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Using the Names Object to List All Named Ranges==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;vb&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Sub TestListNames()&lt;br /&gt;
   ListWorkbookNames ThisWorkbook, ThisWorkbook.Worksheets(2).range(&amp;quot;a2&amp;quot;)&lt;br /&gt;
End Sub&lt;br /&gt;
Sub ListWorkbookNames(wb As Workbook, rgListStart As range)&lt;br /&gt;
    Dim nm As name&lt;br /&gt;
    For Each nm In wb.Names&lt;br /&gt;
        rgListStart.value = nm.name&lt;br /&gt;
        rgListStart.Offset(0, 1).value = &amp;quot;&amp;quot;&amp;quot; &amp;amp; nm.RefersTo&lt;br /&gt;
        Set rgListStart = rgListStart.Offset(1, 0)&lt;br /&gt;
    Next&lt;br /&gt;
End Sub&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>