【问题标题】:Finding a VBAS defnied Named Range definition查找 VBAS 定义的命名范围定义
【发布时间】:2016-01-07 14:26:24
【问题描述】:

一个价值我继承了一个大型 VBA 项目,虽然我有很多开发经验,但我有少量的 VBA。代码从表单中读取数据:

Intersect(Range("colName"), .Rows(intCurrentRow)).Value

colName 是一个命名范围,至少我是这么认为的。我已经搜索了所有的项目代码和 Excel 表,但找不到 colName 的定义位置?

到目前为止,我已经搜索了代码,在工作表上的名称管理器中查看并疯狂地用谷歌搜索,但完全空白。因为我现在需要从工作表中读取另一个值,所以我真的更喜欢使用当前与另一个值一起使用的代码而不是 colName 来引用我的新数据字段。

我有什么明显的遗漏吗?

编辑:

activesheet.range("colName").address 给出的值为 "$L:$l"

【问题讨论】:

  • colName in "" 意味着它是一个工作表级别的范围名称,它可以是一个动态范围,例如 offset(a1,0,0,counta(a:a),1)扩展范围,可能不会出现在 CTRL G 名称列表中,请检查“定义名称”框是否存在。
  • Define Names 中没有列出...
  • 相交上方是否有On Error ... 语句?也许它从来没有正常工作过?当你在该行设置断点时会发生什么? Range("colName") 到达那里时的值/地址是多少?踏入并越过那条线,是否有任何处理?您没有提供足够的代码/数据/行为示例来确定任何内容。
  • 可能是隐藏的名称:尝试取消隐藏以查看
  • @DougGlancy - 好的,我们得到了一些东西 - 在即时窗口中键入会导致命名范围出现,所以我想我可以添加另一个启用 HideRange 功能的范围,然后定义它与其他人一起隐藏。

标签: vba excel named-ranges


【解决方案1】:

它可能是一个隐藏的名称。正如 Doug Glancy 所说,您可以使用 VBA 取消隐藏它

Activeworkbook.Names("colName").Visible=True

如果您正在使用已定义的名称,您可能会发现获取 My & Jan Karel Pieterse 的名称管理器插件非常有用,该插件(以及许多其他东西)处理隐藏的名称。从
http://www.decisionmodels.com/downloads.htm

下载

【讨论】:

    【解决方案2】:

    它可能是一个隐藏的名称。尝试: ActiveWorkbook.Names("colName").Visible=True

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 2010-12-03
      • 1970-01-01
      相关资源
      最近更新 更多