空错志

如何批量导入vCard格式联系人到Outlook

栏目:其他      8,833 次浏览      13 枚回复     

网上有从Outlook批量导出Vcard格式的教程说明,但是关于如何将Vcard格式的联系人批量导入到Outlook的教程几乎没有。我在网上找到了以下这些操作步骤,成功了,在这里分享。

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 colInsp = objOL.Inspectors
If colInsp.Count = 0 Then
Set objWSHShell = CreateObject(”WScript.Shell”)
objWSHShell.Run strVCName
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

相关日志


标签:

转载注明:转自空错志

本站遵循:署名-非商业性使用-禁止演绎 3.0 共享协议

收藏分享: QQ书签 / 百度收藏 / Google书签 / 推荐按到鲜果 / 推荐到豆瓣 / Facebook / Delicious


13 枚回复


  1. peggy 说:

    怎么不行了,是下边这整段复制到宏里啊
    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 colInsp = objOL.Inspectors
    If colInsp.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

  2. kongcuo 说:

    @peggy:是啊,需要整段复制过去执行。

  3. ketty 说:

    我也是一整段復制過去的, 但提示沒有定義

  4. kongcuo 说:

    因为代码还需要引用“Microsoft Scripting Runtime”,请在VBA的“工具”–>“引用”中勾选“Microsoft Scripting Runtime”即可。

  5. soso 说:

    可是工具-引用中没有microsoft scripting runtime

  6. kongcuo 说:

    有“Windows Script Host Object Model ”的,你仔细找找看。

  7. 王保华 说:

    谢谢 ,我已经用这个方法成功的导入了,可是 姓氏显示乱码.

  8. 说:

    谢谢,我测试是成功的,但是 (”C:\VCARDS”),这里的双引号用错了中文的,希望大家注意,主人应该是在中文输入法状态下写的代码。

    • 空错 说:

      谢谢罗,用英文输入方式。
      问题是,即使我用了英文,但显示在博客上时,不知为何就变成了中文。

  9. cd 说:

    第三行出错,Dim objOL As Outlook.Application
    提示用户定义类型未定义。
    我用的是office2007

    • 空错 说:

      @cd:真是抱歉,我所用的是office2000,没有问题。在2007上未试过,你再找找有没有其他方法。


发表回复


XHTML: 您可以使用如下代码:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>