无法将值从Userform传递到模块

时间:2018-05-25 04:19:17

标签: vba outlook outlook-vba

全部,我试图将所选项目(或多个项目)的值从用户窗体传递到ThisOutlookSession,但无法传递字符串。感谢我可能会出错的地方。

我们的想法是使用txt文件中的引用列表填充列表框(工作正常),用户将从列表框中选择一个项目,然后该项目将附加到主题行的末尾即将发送的电子邮件。 (修改主题行的代码部分从下面省略。)

在ThisOutlookSession中:

Public subString As String

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

SubjectAdd.Show
[CODE OMITTED,  but the gist of it is item.subject = item.subject & strstring]

End Sub

在SubjectAdd userform中:

Private Sub Append_Click()

Dim i As Long
Dim lngCount As Long

  lngCount = 0
  For i = 0 To MatterList.ListCount - 1
    If MatterList.Selected(i) = True Then
      lngCount = lngCount + 1
      If lngCount = 1 Then
        StrPicks = MatterList.List(i)
      Else
        StrPicks = StrPicks & " " & MatterList.List(i)
      End If
    End If
  Next i

subString = StrPicks
Me.Hide

lbl_Exit:
  Exit Sub

End Sub

1 个答案:

答案 0 :(得分:0)

Public变量应该有效

作为替代,使用Tag object

UserForm属性

Append_Click() Me.Hide

之前添加最后一行
Me.Tag = StrPicks

然后在Application_ItemSend()中,在任何

之前
Unload SubjectAdd

放置以下内容

subject = item.subject & SubjectAdd.Tag