是否有可能将单元格值“dynamic地”传递给VBA?

我在Excel中有一个“表格”:

ABC 1 Value1 Susan Button 2 Value2 Peter Button 3 Value3 Mark Button 

当点击“button”button时,我想从Excel发送电子邮件。

例:

如果我在第二行中按下button,则发送电子邮件给彼得,如:

 Dear Peter, Value2 Value2 Value2 Value2 Value2 Value2 Value2 Value2 Your sincerely.. 

是否有可能将Excel单元格值“dynamic”传递给VBA?

我想写只有一个SUBbutton,并在每一行使用,但我不知道如何引用基于哪个button在哪一行按下单元格。

对于电子邮件发送,我使用这个,效果很好:

 Sub Send_Email_Using_VBA() Dim Email_Subject, Email_Send_From, Email_Send_To, _ Email_Cc, Email_Bcc, Email_Body As String Dim Mail_Object, Mail_Single As Variant Email_Subject = "Trying to send email using VBA" Email_Send_From = "test" Email_Send_To = "test" Email_Body = "You have successfully sent an e-mail using VBA !!!!" On Error GoTo debugs Set Mail_Object = CreateObject("Outlook.Application") Set Mail_Single = Mail_Object.CreateItem(0) With Mail_Single .Subject = Email_Subject .To = Email_Send_To .cc = Email_Cc .BCC = Email_Bcc .Body = Email_Body .send End With debugs: If Err.Description <> "" Then MsgBox Err.Description End Sub 

假设你正在使用标准的表单对象而不是ActiveX控件,你可以使用类似于:

 Dim rowNumber As Long rowNumber = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row 

这将返回button左上angular所在单元格的行号。