【发布时间】:2011-11-09 11:47:21
【问题描述】:
这里有几个关于 Range.NumberFormat 的问题——希望有人可以提供现成的答案,因为使用所有通用术语搜索网络很困难。
一点背景知识:我正在尝试消除“随机”错误 1004 代码:无法设置 Range 类的 NumberFormat 属性是消息。当我尝试将 late-bound 对象的 .NumberFormat 设置为命名格式时发生错误,主要使用“常规”或“标准”。在 99% 的情况下,对象是 Application.Selection。另请注意,此错误的最常见原因 - 工作表或工作簿上的保护 -在此处不适用。
从 Excel 2003 到 2007,Microsoft 似乎在 VBA 中引入了一个错误。如果在即时窗口中输入
? Selection.NumberFormat并按Enter,我会得到“General”。如果我用某些插件(不是全部,不可预测)运行带有断点的宏做同样的事情,我通常会得到“标准”。什么是“标准”?那是从哪里来的?我想从一个单元格中选择一种数字格式,然后将其放到另一个单元格中;在随机的时刻,我不能以这种方式应用“标准”,它的结果不像一般。 (在 Excel 2003 中,它永远不会出现在即时窗口中,并且无法系统地应用。)即使我将“标准”的所有实例都转换为“常规”,在
MyObject.NumberFormat = "General"上有时仍会出现错误。我在几个地方读到过,最好应用命名格式的底层格式,即 General 适用于某些东西(正如我认为标准那样);在 Excel VBA 中执行此操作的语法是什么?
提前感谢您的帮助。
【问题讨论】:
标签: excel excel-2007 excel-2003 vba