2015-07-11 27 views
0

我得到一個類型不匹配的錯誤..我試圖設置活動單元格等於某些單元格。如果activecell = E4:E18那麼這裏這樣做是我的代碼任何人都可以告訴我我在這裏做錯了什麼。使用activecell的VBA類型不匹配錯誤

 If ActiveCell.Row = Range(Cells(4, 5), Cells(18, 5)) Then 
       ActiveSheet.Cells(ActiveCell.Row, 4) = Now 
     If ActiveCell.Row = Range(Cells(4, 8), Cells(18, 8)) Then 
       ActiveSheet.Cells(ActiveCell.Row, 7) = Now 

這是我試圖建立積極cell = E4 to E18那麼這個 「

回答

1

您正在嘗試比較了多種ActiveCell.Row針對一系列對象,它是什麼Range方法返回。你需要使用這個:

If ActiveCell.Row = Range(Cells(4, 5), Cells(18, 5)).Row Then 

但是,這不會如何你想要的。 ActiveCell只是一個單元,所以屬性只是一個單一的數字。 Selection範圍可能不止一個單元。但是,屬性仍然只返回第一行單元格的行號。

如果你想檢查ActiveCell是範圍E4內:E18,然後用Intersect方法,看看是否返回一個Range對象:

If Not (Intersect(ActiveCell, Range(Cells(4, 5), Cells(18, 5))) Is Nothing) Then 
    MsgBox "Yes" 
Else 
    MsgBox "No" 
End If 

如果你只是關注行號,然後用

If (ActiveCell.Row >= 4 And ActiveCell.Row <= 18) Then 
    MsgBox "Yes" 
Else 
    MsgBox "No" 
End If 
+0

你能告訴我爲什麼你用相交..它是什麼樣的方法? – user3795861

+1

你應該Google。 – ChipsLetten