【发布时间】:2019-04-24 03:08:15
【问题描述】:
使用 Excel 2013。经过多年的寻找和适应,我的第一篇文章。
我正在尝试将当前 App 用户(即“John Smith”)与他的电子邮件地址“jsmith@work.com”进行匹配。
使用两个字符串:1 个用于用户(1 到 3),另一个用于 eaddress(1 到 3)。 我想获取当前用户的电子邮件地址,以便在单独的 Sub 中使用,以便在电子邮件中抄送当前用户。
我尝试了For Each i In user,并将eName 设置为eaddress(i)。
这仅返回最后一个列出的用户/电子邮件。
Private Sub (useremail)
Dim user (1 To 3), eaddress (1 To 3), fullName, eName As String
fullName = Application.UserName
user(1) = "John Smith"
user(2) = "Debbie Adams"
user(3) = "Karen Jones"
eaddress(1) = "jsmith@work.com"
eaddress(2) = "dadams@work.com"
eaddress(3) = "kjones@work.com"
For i = 1 To 3
'For Each i In user
fullName = user(i)
eName = eaddress(i)
'Exit For
debug.print "User is " & fullname & "email to " & eName
Next i
希望获取当前用户的电子地址/电子名称(用于单独的 Sub 到电子邮件文件)。
【问题讨论】:
-
需要将您的
debug.print移动到您的循环中。 -
@tigeravatar 好的,将 d.p 移到里面,它正确匹配每个用户/地址。我只需要提取 1 个匹配项。我想我需要一个 IF 用户(i)然后 eName = eaddress,但我没有做对。
-
您是对这些用户名/地址进行硬编码,还是从文件中的某个位置提取它们?您的代码表明这些是硬编码的,但这可能只是示例。
-
@Cyril 姓名和电子邮件是硬编码的。最终可能会移动到工作簿中的隐藏工作表,但现在......
-
我觉得答案已经足够好了,它不保证我的变体。但在未来更强大的项目中,您可能需要考虑创建自己的“用户”类并创建用户集合。