Excel VBA中的数组声明

时间:2010-08-28 14:24:42

标签: excel vba excel-vba excel-2003

我在Excel字段(由某人创建)中包含一个包含数组的公式:
 =PERCENTILE(Scale1, 0.5)
我需要将此数组扩展到其他字段。

通常,数组是A1:C52之类的范围,因此扩展它意味着修改公式,例如 A1:C152

但是这个“Scale1”,即使我能看到它的蓝色边框,我也无法修改它的范围。

我试图搜索定义“Scale1”的位置,但没有成功。有人知道如何修改它吗?

(我不能只用A1:C152替换“Scale1”,因为“Scale1”在多个地方使用......)

3 个答案:

答案 0 :(得分:2)

这听起来像 somone 使用了名字。您可以在UI中以交互方式修改它们:

  • 转到公式标签/功能区
  • 点击名称管理器
  • 选择 Scale1
  • 更改底部文本字段中的范围
  • 点击关闭按钮

(在Excel 2003中,可以使用“名称>定义...”打开类似的对话框(在插入菜单中)。

或通过VBA:

ThisWorkbook.Names("Scale1").RefersTo = "Table1!$A$1:$C$152"

答案 1 :(得分:0)

如果您使用的是Excel 2007/2010,则可以打开xlsx文档的XML内容。以这种方式寻找'Scale1'。要在代码中执行此操作,请使用OpenXML API。

检索Excel单元格值:http://msdn.microsoft.com/en-us/library/bb332058%28office.12%29.aspx

关于重新计算公式的类似问题:OpenXML SDK: Make Excel recalculate formula

最后,如果您需要在VBA中执行此操作,我发现有关编辑元素的文章,但尚未尝试过:http://www.jkp-ads.com/articles/Excel2007FileFormat02.asp

对于Excel 2003,您可以安装Compatibility Pack,这将允许Office 2003使用2007 Microsoft Office system新增的Open XML格式打开,编辑,保存和创建文件。

答案 2 :(得分:0)

在Excel 2003中,名称管理器位于“插入”|“名称”|“定义”。