excel - 如何在不选择单元格的情况下解析范围名称
问题描述
导入工作表时是否可以强制 Excel 使用 VBA 解析所有范围名称?在某些情况下,直到选择单个单元格,在编辑栏中突出显示然后取消选择,名称才会解析。似乎如果工作表包含名称管理器中不存在的任何名称,则所有后续名称都将被忽略。
我的应用程序在“经理”工作簿中运行 VBA 代码,从那里我打开第二个“模板”工作簿以生成测试报告。可以使用功能区控件将报告页面(工作表)附加到模板。这些附加的工作表具有各种名称的单元格,可以根据模板工作簿中已有的数据自动填写报告。例如,当导入工作表(“结果”)时,视图显示:
Address Formula Value Display
F18 =WeightAir 335 335
F19 =WeightWater Name missing in this workbook
B39 =Length 1.1 #NAME?
C47 =Author N H #NAME?
如果我选择单元格 C47,请在公式栏中单击并再次退出,单元格值将正确显示。单元格 B39 仍然错误。同一个工作表中的其他单元格没有被填充,这只是为了展示一个例子。我尝试使用 VBA 选择一系列单元格(包括所有显示 #NAME? 错误的单元格)来强制计算,但这似乎没有效果
DestWB.Worksheets(ShtCount).Range("A1", "Z65536").Select
DestWB.Worksheets(ShtCount).Calculate
DestWB.Worksheets(ShtCount).Range("A1").Select
我在关闭“源工作簿”之前收到了使用此建议的建议
DestWB.Worksheets(ShtCount).UsedRange.Formula = _
OrigWB.Worksheets(1).UsedRange.Formula
但是,如果工作表包含名称管理器中不存在的任何名称,则对于此工作簿,所有后续(即具有更高列、行地址的单元格)名称都将被忽略。有没有办法强制解析所有已知名称,只留下缺失值?请问有什么建议吗?
解决方案
虽然我无法复制由工作表的“副本”创建的问题,但我能够生成“ Formula
s in Error
due to missing Names
”。
以下过程更新了中Formulas
存在的,只将错误留给不存在的。Error
Names
Workbook
Name
Sub Formulas_InError_Refresh()
Dim wb As Workbook
Dim rErr As Range
Dim rArea As Range
Set wb = ActiveWorkbook 'Change to the required workbook
Set rErr = wb.Worksheets("Results").UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors)
For Each rArea In rErr.Areas
With rArea
.Formula = .Formula
End With: Next
End Sub
推荐阅读
- java - 将多个文件一一拖放到javaFX中
- android - 将 Dagger 2 注入 Worker 类
- macos - 构建并推送多拱 docker 镜像
- python-3.x - 无法使用 tf.restore 恢复预训练模型
- android - 从 SQLite 数据库填充 MPAndroidChart BarChart
- python - Python:WSGI 崩溃且没有错误
- hive - Cloudera Hue - 在 serde 属性规范中无法识别“WITH”“SERDEPROPERTIES”“(”附近的输入
- elasticsearch - 弹性搜索模糊搜索未找到所需结果
- python - 在文本文件中搜索字符串时出现“TypeError:预期的字符串或类似字节的对象”错误-Python
- apache-spark - java.lang.AssertionError:断言失败时加入流Spark