您的位置: 首页 > EXCEL技巧 > ExcelVBA >

用VBA选择已定义名称的区域

时间:2013-12-04 整理:docExcel.net

如果活动单元格位于某个已定义名称的区域中,可以用下面的VBA代码来选择这个区域,同时在状态栏中给出提示。

Public Sub SelectRange()
Dim RngName As String
Dim R As Range
Set R = ActiveCell
Dim Msg As String
Msg = "活动单元格不在已定义名称的区域中"
RngName = CellInNamedRange(R)
If RngName <> "" Then
Range(RngName).Select
Msg = "已选择的区域名称: " + RngName
End If
Application.StatusBar = Msg
End Sub


Public Function CellInNamedRange(Rng As Range) As String
Dim N As Name
Dim C As Range
Dim TestRng As Range
On Error Resume Next
For Each N In ActiveWorkbook.Names
Set C = Nothing
Set TestRng = N.RefersToRange
Set C = Application.Intersect(TestRng, Rng)
If Not C Is Nothing Then
  CellInNamedRange = N.Name
  Exit Function
End If
Next N
CellInNamedRange = ""
End Function

如果活动单元格位于多个已定义名称的区域中,将按照名称框下拉列表中的顺序选择第一个名称区域。

用OFFSET函数定义一个动态区域 问题:用OFFSET函数定义一个动态区域
回答:我们可以给一个单元格或区域定义一个名称,以便在公式中引用。如果区域不是固定的而是一个动态的范围,我们也可以给它定义名称,以后在公式中引用的就是一个动态区域。例如我们可以在A列中定义一个动态区域,是从A1单...
通过定义名称实现Excel2013单元格的快速录入 问题:通过定义名称实现Excel2013单元格的快速录入
回答:...的文字,你还是一个一个字的去敲吗?那就太OUT了~利用定义名称的方法,我们完全可以设一个缩写,例如输入“北”,就能显示“北京市XX区XX小学”等字样。具体如何实现呢?小编这就为大家解释。 ①启动Excel2013...
修改数据系列公式自动更新Excel图表 问题:修改数据系列公式自动更新Excel图表
回答:...据,我们可以将图表的数据区域转换为列表或用OFFSET函数定义为一个动态区域名称,这样,当在源数据区域后继续添加数据时,图表会自动进行更新。但在Excel 2003中将图表的数据区域转换为列表后,在某些情况下图表仍不会自...
将区域中的数据转化到单行或单列中 问题:将区域中的数据转化到单行或单列中
回答:...们要将其中的姓名转化到一列中,步骤如下:   1.定义名称 将这个区域定义一个名称,以便在公式中引用。选择该区域,在名称框中输入“Data”,按回车键,名称定义好了。 然后选择需要放置该名单所在列的第一个单...
在合并单元格中计算和值及平均值 问题:在合并单元格中计算和值及平均值
回答:...小类”的和值和平均值。在数据较多的情况下除了使用自定义函数的方法外,还可以用下面的公式。 一、计算和值 假如数据在A1:C19区域中,选择D2:D19区域,在编辑栏中输入公式: =SUM(C2:C$19)-SUM(D3:D$19) 然后按Ctrl+Enter,将公...
在Excel2007中快速输入公式 问题:在Excel2007中快速输入公式
回答:...忆式键入功能来快速输入该函数,例如已给两个数据区域定义名称data1和data2,现在要用SUMPRODUCT函数来返回两个区域数据乘积的和。 1.在需要输入公式的单元格中输入“=s”,这时Excel弹出一个列表,列出以“S”开头的函数。但此...
相关推荐: