Excel 复制粘贴按钮

Excel 复制粘贴按钮

我有一张包含 200 多行的 Excel 工作表。我希望每行上都有一个按钮,单击该按钮时会将该行的值复制到第二张工作表中。

以下是我正在寻找的内容。但是我无法更新超过 200 个按钮的宏。

有没有办法让每个按钮与其所在的行相关?

   Rows("6:6").Select
    Selection.Copy
    Sheets("Sheet1").Select
    Rows("6:6").Select
    ActiveSheet.Paste
End Sub

答案1

如果您确保单元格内有按钮,则可以使用Application.Caller来确定按下了哪个按钮,并Shapes(btnName).TopLeftCell获取按钮的位置。
这样您就可以对所有按钮使用相同的宏。

然后你只需将这些值赋给变量,最终得到类似

Dim btnName As String, btnRow As Long
btnName = Application.Caller
btnRow = ActiveSheet.Shapes(btnName).TopLeftCell.Row
ActiveSheet.Rows(btnRow).Copy Sheets("Sheet1").Rows(btnRow)

这会将所有内容(包括按钮本身)复制到"Sheet1"。如果您只想要值,则可以使用PasteSpecial Paste:=xlValues

ActiveSheet.Rows(btnRow).Copy
Sheets("Sheet1").Rows(btnRow).PasteSpecial Paste:=xlValues

或者设置值。

Sheets("Sheet1").Rows(btnRow).Value = ActiveSheet.Rows(btnRow).Value

相关内容