2012-10-22 478 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

當然,這麼簡單的我忘了!感謝發佈。 –

相關問題