单击文本框的行号

时间:2018-04-15 00:37:06

标签: excel vba excel-vba

VBA的新手并尝试创建一个非常基本的脚本,但似乎无法在Google上找到我想要做的事情的答案。在将宏指定给文本框时,我希望能够找到文本框所在的行(目的是在文本框上方插入一行,我可以这样做。)

所以基本上需要找到已被点击并分配给宏的文本框的行。

谢谢, 雅各布

1 个答案:

答案 0 :(得分:0)

只需使用Application.Caller获取形状的名称,就可以从那里开始:

Sub insert_row()
Dim rec_name As String
Dim rw As Long
Dim shp As Shape

rec_name = Application.Caller
Set shp = ActiveSheet.Shapes(rec_name)

Debug.Print shp.TopLeftCell.Row
rw = shp.TopLeftCell.Row

ActiveSheet.Cells(rw, 1).EntireRow.Insert shift:=xlDown

End Sub

将该宏指定给形状。