微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在没有#NA 错误的情况下传递不同维度的命名范围

如何解决如何在没有#NA 错误的情况下传递不同维度的命名范围

我的工作簿的结构如下:有 UI 表、计算表和数据库表。

  • 用户与 UI 工作表进行交互,并从那里调用宏。
  • 信息被传递到计算表(通过命名范围)并在那里执行计算。
  • 计算表的输出被传递到 UI 表(通过命名范围)和数据库表(也通过命名范围)。

用户“保存”一个文件时,程序只是将数据库表的副本保存到一个文件中。这样做是为了使用户不会覆盖主文件。当用户“打开”一个文件时,会检索该文件,并将数据从保存的文件通过命名范围传递到主文件中的数据库表。

为了填充这个数据库表,我通过以下代码从 UI 和计算表传递值

ws_DB.range("rngName_UI").value2 = ws_UI.range("rngName_UI").value2
ws_DB.range("rngName_Calc").value2 = ws_Calc.range("rngName_Calc").value2

这个系统的唯一问题是,如果我需要输出新信息,我的命名范围可能会随着时间的推移获得新的行/列。这意味着,如果我用版本 1 保存了一个数据库表,并且某个命名范围“rng_A”有 3 列,但随后我在版本 2 中检索它并且“rng_A”有 5 列,那么 Excel 会显示最后 2 列并带有 #NA错误

有什么方便的方法可以避免这个问题吗?到目前为止,我最好的想法是我可以获得源和目标范围的行和列,然后只传递给 nRows 和 nCols 中的最小值。有没有更好的解决方案?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。