【发布时间】:2019-04-04 00:54:54
【问题描述】:
我需要遍历工作簿中的每个工作表,并在每个工作表中设置动态命名范围,工作表摘要报告除外。 我需要用工作表名称和“关闭”来命名范围。
我目前有这个:
Option Explicit
Public Sub DefineNamedRanges()
Dim WSheet As Worksheet
Dim ShtName As Variant
For Each WSheet In Worksheets
ShtName = WSheet.Name
If ShtName <> "Summary Report" Then
WSheet.Names.Add Name:=ShtName & "Close", _
RefersTo:="=OFFSET(ShtName!$A$2,0,0,COUNTA(ShtName!$A$2:$A$1048576),COUNTA(ShtName!$2:$2))"
End If
Next WSheet
End Sub
此代码创建范围并根据需要命名它们。 当我打开名称管理器时,范围似乎没有引用任何内容。 这就像只创建名称,而不是范围本身。
【问题讨论】:
-
你需要将
ShtName移到外RefersTo中的引号并与&连接。 -
@BigBen,就像一个魅力,但你为什么删除你的答案?
-
正在进一步测试它。将取消删除
-
@BigBen,给你。谢谢。
标签: excel vba dynamic named-ranges