如何设置OFFSET如果有机会添加新列
问题描述:
我有一个场景,在基于按钮searck(点击)我需要更新一个特定的单元格与来自搜索结果的值。 搜索按钮TopLeftCell属性和OFFSET()方法被用来获得到到的值被复制如何设置OFFSET如果有机会添加新列
With Sheets("Test").Shapes("btnSearch").TopLeftCell
.Offset(0, -4).Value = searchResult
End With
细胞但有一个要求,即如果存在被稍后加入这些细胞之间的任何列那么偏移量将得回来再次改变
有什么办法来处理这种情况,使我们不必担心偏移的方法,甚至当我们添加/删除
之间请注意列这些单元格实际上是excel中列表/网格的一部分,它们是动态增加的。
答
只是测试这和它的工作:
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
+0
谢谢Scott。这里有一个问题,我的标题是多行内容,不能更改为单行。 – user3428508
+0
@ user3428508 - 我建议调整这段代码以使其适合它。如果你最初说过,我会创建代码来做到这一点。如果您根据数据格式进行调整以找到正确的标题列,我提供的概念仍然可以使用。 –
将需要被搜索的列必须在保持不变的任何行某种类型的标题或标识符?意思是,列号本身可能会改变,但定义的标题将始终在行'n'? –
是的,它的标题不会改变 – user3428508