在VBA中设置范围时,“对象变量或未设置块变量”错误

时间:2012-10-22 10:40:27

标签: excel-2007 vba range

我有一个创建数据透视表的函数,但是当我尝试设置一个将被合并并添加了标题的范围时,我收到错误。

在下面的代码中,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

如果需要,这是一个完整功能的Pastebin - http://pastebin.com/L711jayc。违规代码从第160行开始。

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

1 个答案:

答案 0 :(得分:6)

您需要使用

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 - 这是一个对象;)