我收到类型不匹配的错误。我正在尝试设置等于某个单元格的活动单元格。如果activecell = E4:E18
,那么在这里执行此操作是我的代码,任何人都可以告诉我我在这里做错了什么。
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
然后这个
'
答案 0 :(得分:1)
您正在尝试将数字ActiveCell.Row
与Range
方法返回的范围对象进行比较。你需要使用它:
If ActiveCell.Row = Range(Cells(4, 5), Cells(18, 5)).Row Then
但是,这不符合您的要求。 ActiveCell
只是一个单元格,因此Row
属性只是一个数字。 Selection
范围可以超过单个单元格。但是,Row
属性仍然只返回第一行单元格的行号。
如果您要检查ActiveCell
是否在E4:E18范围内,请使用Intersect
方法查看是否返回范围对象:
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