ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2881|回复: 10

[求助] 那怎样VBA 新建联系人

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-4-3 17:04 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册


其实我的目的 是在全球通讯录 里导入到自己的outlook 的联系人

全球通讯录  中不能允许有两个邮箱地址的 而 我都无权限修改全球通讯录


该贴已经同步到 闻启学的微博

TA的精华主题

TA的得分主题

发表于 2014-4-4 09:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
没有权限是无法对全球通讯录做操作的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-4 12:14 | 显示全部楼层
本帖最后由 闻启学 于 2014-4-4 12:16 编辑
dsd999 发表于 2014-4-4 09:46
没有权限是无法对全球通讯录做操作的。

导出都不行吗

TA的精华主题

TA的得分主题

发表于 2014-4-8 11:25 | 显示全部楼层
导出是可以的。
Sub ListMember()

Dim olsession As Outlook.NameSpace

Dim olAddressLists As Outlook.AddressLists
Dim olGlobalDistlist As Outlook.AddressList
Dim olDistributionEntries As Outlook.AddressEntries
Dim entry As Outlook.AddressEntry

Dim num As Integer

num = 0
Dim ret As Integer

Set olsession = Application.GetNamespace("MAPI")
Set olAddressLists = olsession.AddressLists
Set olGlobalDistlist = olAddressLists("CN")
Set olDistributionEntries = olGlobalDistlist.AddressEntries

For Each entry In olDistributionEntries   
    Debug.Print entry.Name  
Next

End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-8 11:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. olAddressLists("CN")
复制代码
这个是什么意思

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-8 11:51 | 显示全部楼层
dsd999 发表于 2014-4-8 11:25
导出是可以的。
Sub ListMember()

不好意思 原来我表述有误

其实我的目的 是在全球通讯录 里导入到自己的outlook 的联系人



我是想全球通讯录 里导出到到自己的outlook 的联系人

这个是我的目的

所以 怎样新建outlook 的联系人  用VBA

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-8 11:55 | 显示全部楼层
换句话 是 利用全球通讯录 数据创建  自己的outlook的联系人

TA的精华主题

TA的得分主题

发表于 2014-4-8 14:05 | 显示全部楼层
Sub ListMember()

Dim olsession As Outlook.NameSpace

Dim olAddressLists As Outlook.AddressLists
Dim olGlobalDistlist As Outlook.AddressList
Dim olDistributionEntries As Outlook.AddressEntries
Dim entry As Outlook.AddressEntry
Dim itemContact As ContactItem

Dim num As Integer

num = 0
Dim ret As Integer

Set olsession = Application.GetNamespace("MAPI")
Set olAddressLists = olsession.AddressLists
Set olGlobalDistlist = olAddressLists("CN")
Set olDistributionEntries = olGlobalDistlist.AddressEntries

Dim foldContact As Folder
Dim itemContactNew As ContactItem
Set ns = Application.GetNamespace("MAPI")
Set foldContact = ns.GetDefaultFolder(olFolderContacts)


For Each entry In olDistributionEntries

If InStr(1, entry.Name, "BSCE") Then
     Debug.Print entry.Name
     Set itemContactNew = Application.CreateItem(olContactItem)
    itemContactNew.FullName = entry.Name
     itemContactNew.Save
     Exit Sub

    End If

Next

End Sub

TA的精华主题

TA的得分主题

发表于 2014-4-8 14:06 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-8 15:23 | 显示全部楼层
Set olGlobalDistlist = olAddressLists("CN")

这个应该是获得l 列表  但是 “CN" 代表的是 ??
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-9 16:27 , Processed in 0.026122 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表