Excel VBA函数“;对象变量丢失";错误。91号

Excel VBA函数“;对象变量丢失";错误。91号,excel,vba,Excel,Vba,Excel不断地以“缺少对象变量”错误点亮它。91号 Function GetMonthRange(sheetMonth) As Range GetMonthRange = ActiveCell.Range("A1:AB1") End Function 我很确定Excel正在维护自己的剪贴板 这是指向整个文件的链接 我将您的功能更改为: Function GetMonthRange() As Range Set GetMonthRange = ActiveSheet.Range("A1:

Excel不断地以“缺少对象变量”错误点亮它。91号

Function GetMonthRange(sheetMonth) As Range
GetMonthRange = ActiveCell.Range("A1:AB1")
End Function
我很确定Excel正在维护自己的剪贴板

这是指向整个文件的链接


我将您的功能更改为:

Function GetMonthRange() As Range
   Set GetMonthRange = ActiveSheet.Range("A1:AB1")
End Function

这似乎现在对我有效。

我将您的功能更改为:

Function GetMonthRange() As Range
   Set GetMonthRange = ActiveSheet.Range("A1:AB1")
End Function

这似乎对我现在起作用了。

您的函数有几个地方出了问题。 1.如果要返回一个范围,必须使用Set,因为范围是一个对象。 2.未使用参数sheetMonth 3.函数将返回不同的结果,具体取决于函数执行时activecell发生的情况。 4.如果这是一个UDF,则当A1:B1中的任何内容发生更改时,它将不会重新计算,因为A1:B1不是参数


你到底想做什么?

你的函数有几个地方出了问题。 1.如果要返回一个范围,必须使用Set,因为范围是一个对象。 2.未使用参数sheetMonth 3.函数将返回不同的结果,具体取决于函数执行时activecell发生的情况。 4.如果这是一个UDF,则当A1:B1中的任何内容发生更改时,它将不会重新计算,因为A1:B1不是参数


您实际上想做什么?

正如@craig所回答的,当您将值赋给除整数、字符串、双精度等基本变量以外的变量时,需要使用
Set
。在上面的示例中,您返回的是一个
范围
实例,它是一个对象变量。为了分配给这样的变量,您需要
Set
。另外,使用
Range(“A1:AB1”)
ActiveSheet.Range(“A1:AB1”)
而不是
ActiveCell.Range(“A1:AB1”)
。虽然两者的作用相同,但前者更好。正如@craig所回答的,当您将值赋给除整数、字符串、双精度等基本变量以外的变量时,需要使用
Set
。在上面的示例中,您返回的是一个
范围
实例,它是一个对象变量。为了分配给这样的变量,您需要
Set
。另外,使用
Range(“A1:AB1”)
ActiveSheet.Range(“A1:AB1”)
而不是
ActiveCell.Range(“A1:AB1”)
。虽然两者都应该工作相同,但前者更好。谢谢-是的,如果你在你的机器上尝试它,它不会工作,因为没有调用参数。所以你把它拿出来,它起作用了。但我必须提供这个参数。无论如何,即使我把它拿出来,它在我的文档上也不起作用。顺便说一下,我也是2003年的。这可能是有关联的。@StormShaddow克雷格回答的要点是,从ActiveCell到ActiveSheet的更改无法做到这一点。我需要相对于活动单元格进行选择。重点是使用SET。ActiveSheet.Range(“A1:AB1”)将返回与ActiveCell.Range(“A1:AB1”)完全相同的结果。谢谢-是的,如果您在您的机器上尝试它,它将不起作用,因为没有调用参数。所以你把它拿出来,它起作用了。但我必须提供这个参数。无论如何,即使我把它拿出来,它在我的文档上也不起作用。顺便说一下,我也是2003年的。这可能是有关联的。@StormShaddow克雷格回答的要点是,从ActiveCell到ActiveSheet的更改无法做到这一点。我需要相对于活动单元格进行选择。重点是使用SET。并且ActiveSheet.Range(“A1:AB1”)将返回与ActiveCell.Range(“A1:AB1”)完全相同的结果,谢谢Charles!我正试图为我自己和我公司的一些其他人制作一个简单的Gannt图表,以跟踪我们正在进行的项目。如果你愿意的话,你可以在我上面在我的P.S.中发布的github链接上查看完整的代码。实际的代码目前已注释掉,因此我可以找出问题所在;上面代码片段中的代码实际上与项目无关;但它的失败与真正的代码一样,我不想因为包含注释掉的部分而混淆人们。谢谢Charles!我正试图为我自己和我公司的一些其他人制作一个简单的Gannt图表,以跟踪我们正在进行的项目。如果你愿意的话,你可以在我上面在我的P.S.中发布的github链接上查看完整的代码。实际的代码目前已注释掉,因此我可以找出问题所在;上面代码片段中的代码实际上与项目无关;但它的失败与真正的代码是一样的,我不想因为包含注释掉的部分而混淆人们。