ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] outlook如何批量导出vcard

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-5-30 11:32 | 显示全部楼层 |阅读模式
因为需要Googlemail和outlook2010同步,我不想用google的sync软件,能否将outlook批量导出Vcard,然后再从gmail导入?目前我看到outlook只能一个一个导出Vcard,不能批量,谁有办法?

TA的精华主题

TA的得分主题

发表于 2011-5-30 13:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
用vba实现。

outlook中. 工具->宏, 创建一个新的宏, 名称任意, 输入:

Sub ExportVcards()
Dim MyContacts As Outlook.MAPIFolder
Dim ContItem As Outlook.ContactItem
Dim FileName As String
Set MyContacts = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
For Each ContItem In MyContacts.Items
FileName = "d:\Contacts\" & ContItem.FileAs & ".vcf"
ContItem.SaveAs FileName, olVCard
Next
End Sub

注意上面的”c:/Contacts”为输出到的目的文件夹.

然后运行, 如果失败, 请检查”c:/Contacts”文件夹是否存在 (不存在则要先创建), 以及outlook中, 工具->安全性, 是否有权限运行宏.

TA的精华主题

TA的得分主题

发表于 2011-5-30 13:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
批量导入。

1,把所有Vcards文件放在一个文件夹内。C:\VCARDS(这个路径需要和代码中的路径相同)

    2,打开Outlook的VBA编辑器。(ALT + F11 呼出)
    3,单击“工具”–>“引用”,勾中“Windows Script Host Object Model ”和“Microsoft Scripting Runtime”

    4,单击“插入”–>“模块”,把下列代码粘帖进去。保存名字例如“A”。

    5,单击“工具”–>“运行”–>“宏”,运行刚才保存的名字“A”。

    6,运行….

代码如下:
Sub OpenSaveVCard()
Dim objWSHShell As IWshRuntimeLibrary.IWshShell
Dim objOL As Outlook.Application
Dim colInsp As Outlook.Inspectors
Dim strVCName As String
Dim fso As Scripting.FileSystemObject
Dim fsDir As Scripting.Folder
Dim fsFile As Scripting.File
Dim vCounter As Integer
Set fso = New Scripting.FileSystemObject
Set fsDir = fso.GetFolder("C:\VCARDS")
For Each fsFile In fsDir.Files
strVCName = "C:\VCARDS\" & fsFile.Name
Set objOL = CreateObject("Outlook.Application")
Set collnsp = objOL.Inspectors
If collnsp.Count = 0 Then
Set objWSHShell = CreateObject("WScript.Shell")
objWSHShell.Run Chr(34) & strVCName & Chr(34)
Set colInsp = objOL.Inspectors
If Err = 0 Then
Do Until colInsp.Count = 1
DoEvents
Loop
colInsp.Item(1).CurrentItem.Save
colInsp.Item(1).Close olDiscard
Set colInsp = Nothing
Set objOL = Nothing
Set objWSHShell = Nothing
End If
End If
Next
End Sub

注意:不要禁用宏。

TA的精华主题

TA的得分主题

发表于 2011-5-31 11:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
非常好的办法,我也是通过代码导出后,再批量导入安卓手机的

TA的精华主题

TA的得分主题

发表于 2012-6-8 22:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
其实还有个好办法,全选联系人后选择以vcard格式转发。
这样给自己发个邮件就行了,所有人的vcf文件都在附件中,直接打包下载就ok啦,呵呵
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-4 20:31 , Processed in 0.019958 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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