VBA的新手并尝试创建一个非常基本的脚本,但似乎无法在Google上找到我想要做的事情的答案。在将宏指定给文本框时,我希望能够找到文本框所在的行(目的是在文本框上方插入一行,我可以这样做。)
所以基本上需要找到已被点击并分配给宏的文本框的行。
谢谢, 雅各布
答案 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
将该宏指定给形状。