如果有可能在中间添加新列,如何设置OFFSET

时间:2017-10-17 16:34:59

标签: excel vba excel-vba offset

我有一个场景,其中基于按钮搜索(点击)我需要使用搜索结果中的值更新一个特定单元格。 搜索按钮TopLeftCell属性和OFFSET()方法用于访问要复制值的单元格

With Sheets("Test").Shapes("btnSearch").TopLeftCell

  .Offset(0, -4).Value = searchResult

End With

但是要求如果稍后在这些单元格之间添加了任何列,则必须再次更改偏移量

有没有办法处理这种情况,这样即使我们在中间添加/删除列,我们也不必担心OFFSET方法

请注意,这些单元格实际上是excel中列表/网格的一部分,它们是动态递增的。

1 个答案:

答案 0 :(得分:1)

刚试过这个并且它有效:

With Sheets("Test")

    Dim resCol As Long
    'change myHeader to defined header and row number as needed
    resCol = .Rows(1).Find("myHeader").Column 

    Dim resRow As Long
    resRow = .Shapes("btnSearch").TopLeftCell.Row

    .Cells(resRow, resCol).Value = searchResult

End With