2015-02-08 95 views
0

我直接從Microsoft網站獲得了此示例,這是如何使用find方法的第一個示例。問題是它給出錯誤91:對象變量或未設置塊變量。它應該找出單元格的值爲2並將其更改爲5,並且如果在該範圍內有任何「2」,但它在完成時也會發出錯誤。我究竟做錯了什麼?查找方法對象變量或塊變量未在Excel中設置VBA

Sub example() 

With Worksheets(1).Range("a1:a10") 
Set c = .Find(2, LookIn:=xlValues) 
If Not c Is Nothing Then 
    firstAddress = c.Address 
    Do 
     c.Value = 5 
     Set c = .FindNext(c) 
    Loop While Not c Is Nothing And c.Address <> firstAddress 
    End If 

    End With 

End Sub 
+1

該示例中存在一個錯誤,由5替換該值導致:如果不這樣做,它會起作用,因爲find會將循環返回到第一個位置,這意味着一旦進入循環。誰寫這個例子從來沒有測試過,它每隔幾個月就會在這裏出現;-) – 2015-02-08 17:00:12

回答

0

你的問題是這樣的一行:

Loop While Not c Is Nothing And c.Address <> firstAddress 

VB將評估所有表達式,所以如果c是沒有,它仍然會評估c.Address並拋出一個錯誤,因爲你不能訪問的屬性一個空值。 您需要重構代碼以檢查不同塊中的每個「And」條件。

相關問題