Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 范围合并单元格时出现Range.Interior.Color错误。_Excel_Vba - Fatal编程技术网

Excel 范围合并单元格时出现Range.Interior.Color错误。

Excel 范围合并单元格时出现Range.Interior.Color错误。,excel,vba,Excel,Vba,为什么以下行可以工作: Range("A1,B2").Interior.Color = someColorAsLong 但以下情况并不适用: dim someVariableName as Long someVariableName = Range("A1,B2").Interior.Color 我甚至尝试过指定活动工作表、工作簿和活动工作表。。我有时会出现超出范围的异常(仍然是1004),但大多数情况下对象全局方法失败(1004)。在以下情况下,我能够重现您的错误:

为什么以下行可以工作:

    Range("A1,B2").Interior.Color = someColorAsLong
但以下情况并不适用:

    dim someVariableName as Long
    someVariableName = Range("A1,B2").Interior.Color

我甚至尝试过指定活动工作表、工作簿和活动工作表。。我有时会出现超出范围的异常(仍然是1004),但大多数情况下对象全局方法失败(1004)。

在以下情况下,我能够重现您的错误: 插入图表表(手动完成)并保持其活动状态。现在,您的代码将始终返回对象的
方法范围\u Global failed(1004)

这是你所犯错误的一个可能的答案。要避免此错误,请确保显式指定工作簿和工作表

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
someVariableName = ws.Range("A1,B2").Interior.Color

显式指定工作簿和工作表优于使用
ActiveSheet
,因为用户可以激活图表工作表。尽管在您的情况下,您的工作表上有代码,因此不应该出现这种情况。

当您运行第二行时,上面的行是在一个子行中执行的,该子行是从按钮单击的代码调用的(按钮位于活动工作表上)。您的第二行的颜色是否与
A1
B2
相同?如果它们不相同,则返回零。对我有效。我的意思是它没有给出任何错误。在什么情况下会出错?布拉德:颜色是一样的。我甚至尝试了简单的范围(“A1”)。。。有趣的是,如果我使用这个表(“名称”),我会得到超出范围的索引Siddharth Rout:我确实有合并的单元格。A1有A1..C1,B2有B2..C2。我不能让它工作。。将尝试使用新文档请不要抱怨MS产品。如果你不喜欢的话。停止使用它:)IMHO,VBA是目前市场上最好的办公产品编程语言;)我得出的结论是excel文档已损坏。我不知道为什么,但它在另一个文档中工作。我在新文档中复制了我所有的宏,为每个宏创建了按钮,一切都很顺利。上一个文档是我在excel 2010中创建的(不是从以前版本的excel转换而来),它没有透视表,没有过滤器,没有隐藏的行/列,没有任何内容,它只是一个简单的excel工作表,在某些单元格中有数据和颜色。列和行没有问题。然而,一个新的excel文档做到了这一点。我现在就对微软发誓。。5个小时的调试时间浪费了。好吧,算了。听起来很疯狂,但这是女士最美好的祝愿!