这里有几个关于Range.NumberFormat的问题--希望有人能给出他们能提供的现成答案,因为搜索网络是很困难的,所有的通用术语。
一些背景:我试图消除“随机”错误1004代码:无法设置Range类的NumberFormat属性的是消息。当我试图将绑定晚的对象的.NumberFormat设置为命名格式时,主要使用“通用”或“标准”,就会发生错误。对象,在99%的情况下是Application.Selection。另外,请注意,造成此错误的最常见原因--工作表或工作簿上的保护--不适用于此。
从 2003到2007,微软似乎在VBA中引入了一个bug。如果在“立即”窗口中键入? Selection.NumberFormat并按Enter,则得到"General“。如果我对运行一个断点的宏的某些加载项(不是全部,不是可预测的)做同样的事情,我通常会得到"Standard“。什么是“标准”?那是从哪来的?我想从一个单元格中获取一个数字格式,并将它放到另一个单元格上;在任意时刻,我不能以这种方式应用"Standard“,其结果与General不一样。(在Excel2003中,它从未出现在“立即”窗口中,并且无法系统地应用。)
MyObject.NumberFormat = "General"上仍然会出现错误。我在几个地方读到,最好是应用命名格式的底层格式,即通用应用于某事物(我认为标准是这样);在Excel?中有什么语法可以这样做?
提前谢谢你的帮助。
发布于 2011-09-02 22:12:31
这可能不是一个完整的解决方案,但这是一个开始:
我认为“标准”是在某些语言中使用的,而不是“一般”。您应该将您的结果与.NumberFormatLocal进行比较。
对于解决方案部分,如果您试图将NumberFormat设置为"General“并获得错误,那么只需将NumberForamt设置为空字符串即可。这将自动使NumberFormat通用/标准。
selection.NumberFormat = ""https://stackoverflow.com/questions/7289183
复制相似问题