excel - 如何在没有#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 的最小值。有更好的解决方案吗?
解决方案
推荐阅读
- swift - 为什么添加新数据时不调用 .childAdded?火力基地
- html - HTML:图像在移动设备上变得非常小
- python - 根据特定键值组合字典列表
- node.js - 当我尝试运行此代码时,出现以下错误
- c++ - GDB - strcmp 不工作:__strcmp_sse2_unaligned
- android - gradlew 更改 React Native 构建的 jcenter() URL
- python - Django'没有名为'suit.apps'的模块错误
- c# - AJAX 发布到 ASP.NET MVC 控制器操作方法 - 空参数
- java - Android:当我关闭应用程序重新启动时,跟踪 Firestore 中的文档数量
- python - 在 .proto 文件中定义 Any.proto