【发布时间】:2019-04-24 12:09:11
【问题描述】:
导入工作表时是否可以强制 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
但是,如果工作表包含名称管理器中不存在的任何名称,则对于此工作簿,所有后续(即具有更高列、行地址的单元格)名称都将被忽略。 有没有办法强制解析所有已知名称,只留下缺失值? 请问有什么建议吗?
【问题讨论】:
-
您是否尝试使用
ActiveWorkbook.Names?