乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 87|回复: 2

展望VBA (365) vs 2010

[复制链接]

49

主题

259

帖子

13

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
450
发表于 2018-11-6 11:35:10 | 显示全部楼层 |阅读模式
我开发了一个简短的宏,允许我的365用户将电子邮件保存到项目文件夹。 我有2个用户仍然在2010年,我无法弄清楚为什么代码不起作用。 我以为这是一个参考或同样容易的东西,但没有运气。 这是代码,如果有人有一个想法
  1. Sub SaveACopy() 'ByVal Item As Object)  'Item As Object
  2.     Const olMsg As Long = 3
  3.     Dim m As MailItem
  4.     Dim strPath As String
  5.      Set m = GetCurrentItem
  6.     If TypeName(m)  "MailItem" Then Exit Sub
  7. Dim xlApp As Object
  8. Set xlApp = CreateObject("Excel.Application")
  9.     xlApp.Visible = False
  10. Dim fd As Office.FileDialog
  11. Set fd = xlApp.Application.FileDialog(msoFileDialogFolderPicker)
  12. Dim selectedItem As Variant
  13. If fd.Show = -1 Then
  14.     For Each selectedItem In fd.SelectedItems
  15.         Debug.Print selectedItem
  16.         strPath = selectedItem
  17.     Next
  18. End If
  19. Set fd = Nothing
  20.     xlApp.Quit
  21. Set xlApp = Nothing
  22. Dim strSubject As String
  23. strSubject = m.Subject
  24. strSubject = Replace(strSubject, ":", "")
  25. 'strPath = """" & strPath
  26. strPath = strPath & "" & strSubject
  27. strPath = strPath & " " & Format(Now(), "ddmmmyyyy-hhNNss") '"yyyy-mm-dd-hhnnss"    YYYY-mm-dd
  28. strPath = strPath & ".msg"
  29. strPath = strPath '& """"
  30. m.SaveAs strPath, olMsg
  31. m.Close olDiscard
  32. End Sub
  33. 'Set objItem = objApp.ActiveExplorer.Selection.Item(1)
  34. Function GetCurrentItem() As Object
  35.     Dim objApp As Outlook.Application  
  36.     Set objApp = Application
  37.     On Error Resume Next
  38.     Select Case TypeName(objApp.ActiveWindow)
  39.         Case "Explorer"
  40.             Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
  41.         Case "Inspector"
  42.             Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
  43.     End Select
  44.     Set objApp = Nothing
  45. End Function

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

1

主题

57

帖子

31

银币

初来乍到

Rank: 1

铜币
35
发表于 2018-11-6 19:52:47 | 显示全部楼层
不幸的是,我不知道这个问题的答案,但非常方便的小程序。
回复

使用道具 举报

1

主题

57

帖子

31

银币

初来乍到

Rank: 1

铜币
35
发表于 2018-11-9 12:52:29 | 显示全部楼层

我们没有Outlook 2010了,所以无法检查。
我使用类似的程序来保存消息或编写带有ISO 8601日期时间代码(YYYY-MM-DD_Thhnn)的pdf,这些代码大多是从www.slipstick.com代码片段中抄袭来的。这些从2007年移植到2010年,2013年移植到365年,没有变化。
一个持续的问题是超过Windows 255字符路径和文件名长度(特别是当保存到我们已经太长的网络项目文件夹到深度嵌套的子文件夹中时)。简单的修复,如果你不介意截断消息文件名。
也许检查应用程序“Inspector”在2010年是否有效。
不是很有帮助,抱歉...
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2024-11-22 05:53 , Processed in 0.150836 second(s), 58 queries .

© 2020-2024 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表