2014-09-26 64 views
1

這就是我想:設置工作表對象模塊變量,得到錯誤

  1. 在模塊,申報工作表對象模塊範圍變量;
  2. ThisWorkbook對象中,設置工作簿打開時的變量。

每個代碼:

模塊1:

Option Explicit 
Public ws As Worksheet 


Function func() 
    dim rng as Range 
    set rng = ws.Range("namedRange") 
    'rest of code ... 
end function 

的ThisWorkbook:

Private Sub Workbook_Open() 
    Set ws = Worksheets("Sales") 
End Sub 

當我打開工作簿時,在第一次運行時會引發錯誤:

Method 'Range' of object '_Worksheet' failed

和所有時間之後,錯誤的是:

Object variable or With block variable not set

+0

我無法複製您的問題。看到這個[image](http://i58.tinypic.com/2s9rfht.jpg)瞭解我如何設置項目。當出現錯誤時,哪行代碼會突出顯示? – 2014-09-26 18:46:27

+0

你需要**'set' **'rng = ws.Range ...' – KekuSemau 2014-09-26 22:00:04

+0

我也是。我試過你的代碼,它工作正常。你確定這是你的'Workbook_Open'事件中唯一的代碼嗎?如果是的話,我認爲沒有理由不起作用。 – L42 2014-09-27 01:10:09

回答

1

我也試過你的代碼。我幾乎達成了沒有問題的決定!

但經過一些審判「第二個錯誤」出現。我的觀察是:

當你添加任何額外的子或Fn或重置您的VBA代碼,公共對象變量被摧毀 ,你不能再訪問它。

供參考:Reference link

相關問題