首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么在任何VBA代码中看不到作用域为工作簿的命名区域?

为什么在任何VBA代码中看不到作用域为工作簿的命名区域?
EN

Stack Overflow用户
提问于 2016-08-03 01:30:59
回答 3查看 55关注 0票数 0

我已经使用名称管理器创建了一个命名范围。它被称为Vol_Check。它的作用域为Workbook。

如果它的作用域是工作簿,为什么我在来自其他工作表或ThisWorkbook或模块的VBA代码中看不到它。即使我尝试直接引用它,它也不会起作用。这是一个我不能工作的代码示例。

代码语言:javascript
运行
复制
Private Sub CommandButton1_Click()

    If ThisWorkbook.Sheets("sheet1").Range("Vol_Check").Value <> 1 Then
        MsgBox ("Some message ")
    End If

End Sub
EN

回答 3

Stack Overflow用户

发布于 2016-08-03 01:43:45

如果您使用的是命名范围"Vol_Check",则使用以下代码从命名范围内的某个单元格中读取值。

在本例中,假设命名区域包含区域B2:B2,则代码行Range("Vol_Check")(1, 1)引用单元格B2

代码语言:javascript
运行
复制
Private Sub CommandButton1_Click()

' just for debug - shows the first row and first column in the Named Range
MsgBox Range("Vol_Check")(1, 1)

If Range("Vol_Check")(1, 1) <> 1 Then
    MsgBox ("Some message ")
End If

End Sub
票数 1
EN

Stack Overflow用户

发布于 2016-08-03 01:59:07

尝试使用Worksheet.Evaluate

代码语言:javascript
运行
复制
Private Sub CommandButton1_Click()
    If ThisWorkbook.Sheets(1).Evaluate("Vol_Check").Value <> 1 Then
        MsgBox "Some message "
    End If
End Sub
票数 0
EN

Stack Overflow用户

发布于 2016-08-03 03:41:33

问题解决了。事实证明,我没有使用名称管理器工具正确定义命名范围。尽管我在作用域中将它标记为“Workbook”,但我的另一个错误是把它搞乱了。谢谢大家。富足

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38726977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档