3

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

在下面的代码中,pivot_title_range是一个“字符串”变量,在调用函数时是可选的。title_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 行开始。

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

4

1 回答 1

7

你需要使用

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

于 2012-10-22T10:49:49.567 回答