2012-10-22 465 views
3

我有一个函数可以创建数据透视表,但是当我尝试设置一个合并范围并且有一个标题添加到它。在VBA中设置范围时出现'Object variable or With block variable not set'错误

在下面的代码中,pivot_title_range是一个'String'变量,在调用函数时是可选的。 title_range是一个'Range'变量。设置范围的两条线(无论用户是否声明pivot_title_range)都会导致相同的错误。

If pivot_title_range = "" Then 
    title_range = ActiveSheet.Range("B3:E4") 
Else 
    title_range = ActiveSheet.Range(pivot_title_range) 
End If 

这里是我得到的错误 -

Run-time error '91': 
Object variable or With block variable not set 

如果需要的话,这里是全功能的引擎收录 - http://pastebin.com/L711jayc。有问题的代码从160行开始。

有人能告诉我我做错了什么吗?谢谢。

回答

5

您需要使用

If pivot_title_range = "" Then 
    Set title_range = ActiveSheet.Range("B3:E4") 
Else 
    set title_range = ActiveSheet.Range(pivot_title_range) 
End If 

因为你定义title_range as range - 这是一个对象;)

+0

当然,这么简单的我忘了!感谢发布。 –

相关问题