Vba Can';t将范围变量设置为ActiveCell.Offset

Vba Can';t将范围变量设置为ActiveCell.Offset,vba,range,cell,Vba,Range,Cell,据我所知,这应该是一个有效的语法。但是,当我运行此程序时,我得到: 对象“\u Global”的方法“Range”失败 知道我做错了什么吗? 谢谢 您可以删除范围(),只需 Dim rngColor as Range Set rngColor = ActiveCell.Offset(0, 1) 据我所知,这应该是一种有效的语法。 根据这一点,在射程上有多种工作方式 表达式。Range(arg)arg是字符串形式 Set rngColor = Range(Activecell.Offset(0,

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

对象“\u Global”的方法“Range”失败

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

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

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

据我所知,这应该是一种有效的语法。
根据这一点,在射程上有多种工作方式

  • 表达式。Range(arg)
  • arg是字符串形式

    Set rngColor = Range(Activecell.Offset(0, 1).Address) ' correct way
    
  • 表达式。范围(单元格(1)、单元格(2))-
    单元格(1)
    单元格(2)
    可以是对象

    With Activecell
        Set rngColor = Range(.Offset(0, 1), .Offset(0, 1)) ' using Activecell object
    End With
    
  • 您正在尝试使用上面的No.1语法,该语法将不接受对象作为参数。
    如果要按原样传递
    Activecell
    ,应使用No.2语法。

    不过,我还是想做你想做的事。

    非常感谢你。我犯了一个愚蠢的错误
    With Activecell
        Set rngColor = Range(.Offset(0, 1), .Offset(0, 1)) ' using Activecell object
    End With