Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Excel VBA中从GetSelectName对话框中的选择返回数据?_Excel_Vba_Outlook - Fatal编程技术网

如何在Excel VBA中从GetSelectName对话框中的选择返回数据?

如何在Excel VBA中从GetSelectName对话框中的选择返回数据?,excel,vba,outlook,Excel,Vba,Outlook,我编写了一些VBA代码,用于从单个选定的Outlook联系人返回信息。它返回了错误的人的信息 它似乎选择了一个按字母顺序(名字)相对接近的联系人,但从来都不是正确的联系人 选择列表中的第一个人将始终返回最后一个人的信息。我让其他人运行它,他们得到同样的问题。Outlook、Office和Excel对象库是最新的(16.0) 将outApp设置为Outlook.Application Dim outDialog作为SelectNames对话框 Dim myAddrList作为地址列表 Dim my

我编写了一些VBA代码,用于从单个选定的Outlook联系人返回信息。它返回了错误的人的信息

它似乎选择了一个按字母顺序(名字)相对接近的联系人,但从来都不是正确的联系人

选择列表中的第一个人将始终返回最后一个人的信息。我让其他人运行它,他们得到同样的问题。Outlook、Office和Excel对象库是最新的(16.0)

将outApp设置为Outlook.Application
Dim outDialog作为SelectNames对话框
Dim myAddrList作为地址列表
Dim myAddrEntry作为AddressEntry
将别名设置为字符串
Set-outApp=GetObject(,“Outlook.Application”)
Set-outDialog=outApp.Session.GetSelectNamesDialog
设置myAddrList=outApp.GetNamespace(“MAPI”).AddressList(“联系人”)
带输出对话框
.AllowMultipleSelection=False
.InitialAddressList=myAddrList
.ShowOnlyInitialAddressList=True
如果是,那么显示
AliasName=outDialog.Recipients.Item(1).Name
设置myAddrEntry=myAddrList.AddressEntries(别名)
范围(“F3”).Value=myAddrEntry.GetContact.FirstName
范围(“G3”)。值=myAddrEntry.GetContact.LastName
范围(“M3”)。值=myAddrEntry.GetContact.Email1地址
范围(“H3”)。值=myAddrEntry.GetContact.CompanyName
范围(“I3”).Value=myAddrEntry.GetContact.BusinessAddressStreet
范围(“J3”).Value=myAddrEntry.GetContact.BusinessAddressCity
范围(“K3”).Value=myAddrEntry.GetContact.BusinessAddressState
范围(“L3”).Value=myAddrEntry.GetContact.BusinessAddressPostalCode
如果结束
以
设置应用程序=无
设置对话框=无
设置myAddrList=Nothing
设置myAddrEntry=Nothing

此Outlook代码演示如何将对话框选择连接到“联系人”

选项显式
私有子地址()
Dim outDialog作为SelectNames对话框
Dim myAddrList作为地址列表
Dim myAddrEntry作为AddressEntry
将别名设置为字符串
Set-outDialog=Session.GetSelectNamesDialog
设置myAddrList=Session.AddressList(“联系人”)
带输出对话框
.AllowMultipleSelection=False
.InitialAddressList=myAddrList
.ShowOnlyInitialAddressList=True
如果是,那么显示
别名=.Recipients(1).name
调试。打印“别名………..”&别名
对于myAddrList.AddressEntries中的每个myAddrEntry
如果myAddrEntry.name=别名,则
和我的公寓
调试.打印.地址………..:“&.地址
Debug.Print“.GetContact.FirstName:&.GetContact.FirstName
以
退出
如果结束
下一个myAddrEntry
如果结束
以
端接头

此Outlook代码演示如何将对话框选择连接到“联系人”

选项显式
私有子地址()
Dim outDialog作为SelectNames对话框
Dim myAddrList作为地址列表
Dim myAddrEntry作为AddressEntry
将别名设置为字符串
Set-outDialog=Session.GetSelectNamesDialog
设置myAddrList=Session.AddressList(“联系人”)
带输出对话框
.AllowMultipleSelection=False
.InitialAddressList=myAddrList
.ShowOnlyInitialAddressList=True
如果是,那么显示
别名=.Recipients(1).name
调试。打印“别名………..”&别名
对于myAddrList.AddressEntries中的每个myAddrEntry
如果myAddrEntry.name=别名,则
和我的公寓
调试.打印.地址………..:“&.地址
Debug.Print“.GetContact.FirstName:&.GetContact.FirstName
以
退出
如果结束
下一个myAddrEntry
如果结束
以
端接头

AddressEntry.ID
将返回联系人的唯一ID。你不能用它吗?我试过用它,但没用。这一次我在游泳池的最深处游泳-我以前从未在Excel之外打过电话获取数据,并尝试边走边学习。
AddressEntry.ID
将返回联系人的唯一ID。你不能用它吗?我试过用它,但没用。这一次,我在游泳池的最深处游泳——我以前从未打电话到Excel外部获取数据,并尝试边走边学习。