首页 > 解决方案 > 在excel vba中查找按钮对象的单元格

问题描述

我使用宏记录器将一些操作分配给 excel 中的按钮(不是 active-X 按钮)。我想要的只是复制一行,将副本插入新行。这很好用,但理想情况下,我需要将代码设置为简单地复制按钮正上方的行。按钮随着它所在的单元格移动,所以看起来我应该能够引用按钮所在的行,复制上面的行并在复制的行上方插入行的副本。如何引用按钮所在的当前单元格?

我基本上希望插入一个新行,以便用户可以输入一个新的“步骤”。这是一种项目管理文档模板。被复制的行将是隐藏行,新行将插入隐藏行上方,供用户输入更多信息。

下面的代码是宏记录的内容。这可行,但我需要复制的行并不总是第 24 行。

Sub Button8_Click()
'
' Button8_Click Macro
'

    Rows("24:24").Select  'row above button
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Rows("25:25").Select 
    Selection.EntireRow.Hidden = False
End Sub

上面的代码按预期添加了行的副本。我正在寻找的是基本上复制一行,以便用户可以在我正在制作的 excel 文档中添加另一个步骤。根据他们添加的步骤数,我不一定要引用此代码中的行。

标签: excelvbabutton

解决方案


如果您的数据在 A 列中:

Sub Button8_Click()

Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row

Rows(lastrow & ":" & lastrow).Copy
Rows(lastrow & ":" & lastrow).Insert Shift:=xlDown
Rows(lastrow & ":" & lastrow).EntireRow.Hidden = False
Application.CutCopyMode = False

End Sub

推荐阅读