无法将范围变量设置为ActiveCell.Offset

时间:2015-04-08 01:01:49

标签: vba range cell

据我所知,这应该是一种有效的语法。但是,当我运行它时,我得到:

  

方法'范围'对象' _Global'失败

Dim rngColor as Range
Set rngColor = Range(ActiveCell.Offset(0, 1))

知道我做错了什么吗? 谢谢!

2 个答案:

答案 0 :(得分:2)

您可以删除范围(),只需删除

Dim rngColor as Range
Set rngColor = ActiveCell.Offset(0, 1)

答案 1 :(得分:0)

As far as I know, this should be a working syntax不完全。
根据这个MSDN link,有各种方法可以使用Range。

  1. 表达式范围(arg) - arg采用字符串形式

    Set rngColor = Range(Activecell.Offset(0, 1).Address) ' correct way
    
  2. 表达范围单元格(1)单元格(2)) - { {1}}和cells(1)可以是对象

    cells(2)
  3. 您正在尝试使用上面的No.1语法,该语法不接受With Activecell Set rngColor = Range(.Offset(0, 1), .Offset(0, 1)) ' using Activecell object End With 作为参数 如果您想按原样传递Objects,则应使用No.2语法 但是,要做你想做的事,user's answer is the best way