Return 电子邮件正文的用户表单选项按钮值

Return Userform Option button value to email body

我有一个用户表单,我想提供信息以填充 Outlook 电子邮件的正文。

我已经能够使用组合框获得 Yes/No 个答案的结果,但不是选项按钮的结果。

使用组合框 yes/no 下拉列表,我一直在根据答案定义一个变量,然后通过使用 &.

引用该变量在 Outlook 电子邮件的正文中使用它

子选项按钮:

Private Sub GetAnswer()
Dim OBAnswer As String
If OBYes.Value = True Then OBAnswer = "Yes"
ElseIf OBNo.Value = True Then OBAnswer = "No"
End If
End Sub

在我的电子邮件子中,当我尝试时:
emailitem.Body = "The answer is " & OBAnswer

我收到一个编译错误:

Variable no defined.

我尝试将 OBAnswer 定义为变体或在电子邮件正文代码中使用 OBAnswer.Text

将您的 Sub 更改为 Function,然后调用该函数来获取您的答案。

Private Function GetAnswer() as String
    
    If OBYes.Value = True Then GetAnswer = "Yes"
    ElseIf OBNo.Value = True Then GetAnswer = "No"
    End If

End Function

'// ...
emailitem.Body = "The answer is " & GetAnswer()
'// ...

否则,如果您需要提前存储答案,只需在 GetAnswer 方法之外声明一个 public 变量来保存字符串并引用它。

您只需在全局范围内声明变量即可在任何需要的地方访问:

Dim OBAnswer As String

Private Sub GetAnswer()

  If OBYes.Value = True Then 
    OBAnswer = "Yes"
  ElseIf OBNo.Value = True Then 
    OBAnswer = "No"
  End If

End Sub

最后,您可能会发现 Getting started with VBA in Office 文章很有帮助。