“Method 'Range' of object '_Worksheet' failed” 错误信息

4
我尝试了底部链接中提供的代码,但在以下行出现错误:
Set getNthColumn = Range(startCell, endCell)

错误是:

对象“_Worksheet”的方法“Range”失败。

这段代码的目的是设置公式为VLOOKUP的单元格范围的颜色格式。
非常感谢您的帮助。 Vlookup to copy color of a cell - Excel VBA

这几乎可以确定是父工作表的不对齐导致的。您无法使用另一个工作表的单元格引用创建Range 对象。当您依赖使用ActiveSheet属性ActiveCell属性创建的单元引用时,通常会发生冲突。 - user4039065
1个回答

6

显然,你将代码放入了工作表的代码模块中。

在这种情况下,Range() 将解析为该工作表的 Worksheet.Range()。如果 startCellendCell 属于不同的工作表,则会出现错误。

如果你将代码放入普通模块中,正如该 OP 明确要求的那样Range() 将意味着 Application.Range(),并且这将正确构造你的范围。

你可以通过显式使用 Application.Range(startCell, endCell) 来消除这种歧义。


2
作为一种权宜之计(也是证明糟糕的父母关系),我建议使用Set getNthColumn = startCell.Parent.Range(startCell, endCell) - user4039065
2
太棒了 - 只需要添加“Application.”就可以了。谢谢。 - ZoneRob

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接