偏移范围中的像元值

时间:2018-07-02 14:50:55

标签: excel vba excel-vba

yellow_cell = ActiveCell.Address
MsgBox (Range(yellow_cell).Value)
implant = yellow_cell.Offset(6, -2).Address
MsgBox (Range(implant).Value)

第一个MsgBox有效,但是第二个无效(运行时错误424,需要对象)。

我也尝试过:

implant = ActiveCell.Offset(6, -2).Address
MsgBox (Range(implant).Value)

我收到运行时错误1004,对象“ Range”的方法“ Offset”失败。

有人知道我在做什么错吗?我已经取消了所有单元的合并。

2 个答案:

答案 0 :(得分:2)

这是获得所需结果的正确方法:

Dim implant As Range, yellow_cell As Range

Set yellow_cell = ActiveCell
MsgBox yellow_cell.Value
Set implant = yellow_cell.Offset(6, -2)
MsgBox implant.Value

通知:如果活动单元格距离列A不到两列,则由于run-time error 1004的第二个参数,此代码将产生Offset功能。

答案 1 :(得分:0)

另一种实现此目的的方法是测试该列是否实际上比2列更靠右,如下所示,这不会引起任何错误:

Sub foo()

Dim yellow_cell As String, implant As String
Dim col As Long

yellow_cell = ActiveCell.Address
MsgBox (Range(yellow_cell).Value)
col = ActiveCell.Column

If col > 2 Then
    implant = ActiveCell.Offset(6, -2).Address
    MsgBox (Range(implant).Value)
Else
    MsgBox "Out of Range!", vbInformation, "Error"
End If
End Sub