首页 > 解决方案 > 运行分配给该行中单元格的宏的按钮

问题描述

我希望将一个按钮分配给一个宏,按下该宏时将发送一封电子邮件,该电子邮件引用与该按钮位于同一行的单元格中的数据。

我有发送电子邮件的代码,但目前只知道如何将其直接链接到某些单元格,例如 A1、B1、C1。

Sub Email_From_Excel_Basic()

Dim emailApplication As Object
Dim emailItem As Object

Set emailApplication = CreateObject("Outlook.Application")
Set emailItem = emailApplication.CreateItem(0)

' Now we build the email.

emailItem.to = Range("A1")

emailItem.Subject = Range("B1")

emailItem.Body = Range("C1")

emailItem.Display

Set emailItem = Nothing
Set emailApplication = Nothing

End Sub

我想要做的是单击分配给一行的按钮,然后使用该行中的单元格引用运行宏。

任何帮助将不胜感激。

谢谢

标签: excelvba

解决方案


我的建议是有一个按钮并让它在活动行上触发。您可以在工作表中选择所需的行,然后按 按钮。该ActiveCell.row属性将拉动您的选择。该ws.Cells函数接受 row 和 column 的参数。使用ActiveCell.row指定行,同时对列进行硬编码以选择所需的单元格。

使用Active<anything>某些宏可能会变得棘手,但只要按钮和数据在同一个工作表上,你应该没问题。

Dim ws As Worksheet
Dim row As Integer

Set ws = ActiveSheet
row = ActiveCell.row

emailItem.to = ws.Cells(row, 1)
emailItem.Subject = ws.Cells(row, 2)
emailItem.Body = ws.Cells(row, 3)

推荐阅读