我试图从按钮单击生成电子邮件,并从按钮所在行的第一个单元格加载数据(作为电子邮件的主题行)。
示例:在第22行中,我在X列中放置了一个按钮,当它被单击时,它创建了一个电子邮件,使用单元格A22作为我的电子邮件的主题。
我知道如何通过将主题行数据直接输入脚本来实现这一点,但是,我想避免为电子表格中的大量行创建数百个脚本。
这是我目前使用的手动输入方法:
Private Sub CommandButton1_Click()
Dim outobj, mailobj
Set outobj = CreateObject("Outlook.Application")
Set mailobj = outobj.CreateItem(0)
With mailobj
.To = "xxxxxxxxx@xxxxxxxx.com"
.Subject = "XXXXXXXXXXXX"
.Body = "XXXXXXXXXXXXXXXXXXXXXXX"
.Display
End With
'Clear the memory
Set outobj = Nothing
Set mailobj = Nothing
End Sub
我只需要从相应按钮行的A列填充主题。我想我需要创建另一个对象,但我不确定正确的代码是什么,我不确定如何让脚本拉它"。主题= " .
以下是我所尝试的基本数据:
►ActiveSheet.Buttons (Application.Caller) .TopLeftCell
►"按下按钮行:" &ActiveSheet.ShapesApplication.Caller) .TopLeftCell.Row
<nbsp; subject> .subject = SubjectTo
网上还有很多其他的建议
所有人都在他们的原始脚本中工作,但我不知道如何将它们合并到我想做的事情中。
我甚至尝试使用表单形状而不是ActiveX按钮
从您的代码示例中,似乎您正在使用ActiveX样式按钮。我知道没有办法从ActiveX按钮确定行号,但如果您切换到表单控制类型按钮,检索行很容易。
Sub Button2_Click()
MsgBox ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
End Sub
对于大量的行,每行一个按钮是不切实际的。您可以使用一个按钮,该按钮依赖于所选单元格或活动单元格来标识行。另一种可能是工作表。BeforeDoubleClick事件宏,当其中一行被双击时打开一封电子邮件(因此根本没有按钮)。