2015-11-03 15 views
0

爲什麼我得到的錯誤,如果我運行這段代碼?:「Range.Find」測試白白寫着「必選對象」

Dim mitarbeiterStatus 
    Dim mitarbeiterCell As Variant 
    Set mitarbeiterCell = Nothing 
    Dim rowsinWorkflow As Integer 
    rowsinWorkflow = Worksheets("worksheet1").Range("A1").End(xlDown).Row 

    With Worksheets("worksheet1").Range("B2:B" & rowsinWorkflow) 
     Dim firstAddress 
     mitarbeiterCell = .Find(displayName, LookIn:=xlValues) 
     If Not mitarbeiterCell Is Nothing Then 'ERROR HERE 
      firstAddress = mitarbeiterCell.Address 
      Do 
      '..... 
      Set mitarbeiterCell = .FindNext(displayName) 
      Loop While Not c Is Nothing And mitarbeiterCell.Address <> firstAddress 

我試圖做喜歡這裏的對象是必需的方式:https://msdn.microsoft.com/de-de/library/office/ff839746.aspx

With Worksheets(1).Range("a1:a500") 
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 

回答

1

改變這一行:

mitarbeiterCell = .Find(displayName, LookIn:=xlValues) 

要這樣:

Set mitarbeiterCell = .Find(displayName, LookIn:=xlValues) 
+0

它可能是值得的聲明'mitarbeiterCell'作爲'Range'一樣,所以:'昏暗mitarbeiterCell作爲Range' –

+0

你可以,但沒有什麼錯誤使用一個變種持有對象。 –