Excel 如何消除运行时错误91对象变量或未设置块变量?
我试图调用我创建的函数,但一直收到此错误Excel 如何消除运行时错误91对象变量或未设置块变量?,excel,vba,Excel,Vba,我试图调用我创建的函数,但一直收到此错误 'This is where I try and call the function Sub Test1() Dim ChartCells1 As Range Set ChartCells1 = GetValues(ActiveSheet.Range("BV2", Range("BV2").End(xlDown)), ActiveSheet.Range("BV2")) ChartCells1.Select End Sub 'this is
'This is where I try and call the function
Sub Test1()
Dim ChartCells1 As Range
Set ChartCells1 = GetValues(ActiveSheet.Range("BV2", Range("BV2").End(xlDown)), ActiveSheet.Range("BV2"))
ChartCells1.Select
End Sub
'this is the function am trying to call
Function GetValues(Column As Range, Value As Range) As Range
Dim ChartCells As Range
Dim Count As Range
Dim Cells As Range
Dim Number As Range
DataSheetArea1Zone16.Activate
Set Number = Range(Value)
Set Cells = Range(Column)
Set ChartCells = Range(Value).Offset(0, -36)
For Each Count In Cells
If Count.Value <> Number Then
Set ChartCells = Union(ChartCells, Count.Offset(0, -36))
Set Number = Count
End If
Next Count
GetValues = ChartCells
End Function
“这是我尝试调用函数的地方
子测试1()
暗淡的图表单元格1作为范围
Set-ChartCells1=GetValues(ActiveSheet.Range(“BV2”),Range(“BV2”).End(xlDown)),ActiveSheet.Range(“BV2”))
图表单元格1.选择
端接头
'这是我试图调用的函数
函数GetValues(列作为范围,值作为范围)作为范围
将单元格设置为范围
变暗计数为范围
暗淡的单元格作为范围
作为范围的暗数
数据表区域16.激活
设置编号=范围(值)
设置单元格=范围(列)
设置图表单元格=范围(值)。偏移量(0,-36)
对于单元格中的每个计数
如果是计数,则为数值
设置ChartCells=Union(ChartCells,Count.Offset(0,-36))
设置数量=计数
如果结束
下一次计数
GetValues=ChartCells
端函数
'''
我一直收到错误91,但我希望某些框被选中哪一行抛出错误?快速浏览:
范围(值)
和范围(列)
有问题Value
和Column
已经是Range
了,不应该包含在Range
调用中。GetValues=ChartCells
如果GetValues
返回一个String
的话,看起来也很可疑。GetValues
第一个问题是如何定义传递给GetValues的第一个参数。如果您的起始单元格是BV2,那么它应该是ActiveSheet.Range(“BV2”,Range(“BV2”).End(xlDown))
。第二个问题是GetValues中的Next
控制变量应该是Next Count
,而不是Next Count1
。第三个问题是GetValues的返回类型应该是一个范围对象。如果是这样,签名应该是函数GetValues(列作为范围,值作为范围)作为范围
。哪一行抛出错误?快速浏览:范围(值)
和范围(列)
有问题Value
和Column
已经是Range
了,不应该包含在Range
调用中。GetValues=ChartCells
如果GetValues
返回一个String
的话,看起来也很可疑。GetValues
第一个问题是如何定义传递给GetValues的第一个参数。如果您的起始单元格是BV2,那么它应该是ActiveSheet.Range(“BV2”,Range(“BV2”).End(xlDown))
。第二个问题是GetValues中的Next
控制变量应该是Next Count
,而不是Next Count1
。第三个问题是GetValues的返回类型应该是一个范围对象。如果是这样,签名应该是函数GetValues(列作为范围,值作为范围)作为范围
。