仅将对话中的最新回复复制到剪贴板

2024-01-09

我有以下 Outlook VBA 代码,可将所选电子邮件的正文复制到 Windows 剪贴板:

Sub CopyMailToClipboard()
On Error GoTo HandleErr
'Copies the selected message to the Clipboard

    Dim M As MailItem
    Set M = ActiveExplorer().Selection.Item(1)

    modClipboard.gfClipBoard_SetData Replace(M.Body, vbCrLf & vbCrLf, vbCrLf)

ExitHere:
    Set M = Nothing
    Exit Sub

HandleErr:
    MsgBox "Error " & Err.Number & ": " & Err.Description, , _
     "CopyMailToClipboard"
    Resume ExitHere
End Sub

这段代码复制了entire邮件正文,包括以前在电子邮件对话中的所有回复。有时我只想复制最近的回复,而不是整个消息:

Outlook 似乎知道邮件的划分位置,如Next and Previous分隔每个先前回复的灰线下方显示的按钮。

如何使用 VBA 仅将对话中的最新回复复制到剪贴板?

我使用的是 Outlook 2013 和 2016。


Outlook 对象模型显然没有公开区分单个电子邮件正文中各个消息的机制。相反,我使用了Split()中断文本消息的功能From::

Sub CopyMailToClipboard(NumMessages As Integer)
On Error GoTo HandleErr
'Copies the selected message to the Clipboard
'NumMessages = Number of messages to return.  Use -1 to return all messages, 1 to return first (most recent)
'               message and so on.


    Dim M As MailItem
    Dim strMyString As String
    Dim strArrMessages() As String
    Dim varMessage As Variant
    Dim i As Integer
    Dim bolIsFirstMessage As Boolean

    Set M = ActiveExplorer().Selection.Item(1)
    strArrMessages() = Split(M.Body, "From: ")     'Split message body into an strArrMessagesay at each occurrance of "From: "
    i = NumMessages     'Set a counter to stop For Each loop when desired # of messages have been returned
    bolIsFirstMessage = True

    For Each varMessage In strArrMessages()
        If i = 0 Then Exit For      'Stop getting messages once i counter reaches 0.  This never triggers
                                    'if numMessages (and therefore i) start at -1, in which case we want
                                    'all messages

        If bolIsFirstMessage Then
            'Add header info to most recent message in thread
            strMyString = "From: " & M.Sender & vbCrLf & _
                "Sent: " & Format(M.SentOn, "dddd, mmmm dd, yyyy h:mm AM/PM") & vbCrLf & _
                "To: " & M.To & vbCrLf & _
                "Subject: " & M.Subject & vbCrLf & _
                vbCrLf & _
                Replace(varMessage, vbCrLf & vbCrLf, vbCrLf)

            bolIsFirstMessage = False

        Else
            strMyString = strMyString & _
                "-------------------------------------------------------------" & vbCrLf & _
                vbCrLf & "From: " & Replace(varMessage, vbCrLf & vbCrLf, vbCrLf)
                'Add the 'From: ' text removed by use of Split()

        End If

        i = i - 1

    Next varMessage

    'Put data on Clipboard
    modClipboard.gfClipBoard_SetData MyString:=strMyString

ExitHere:
    Set M = Nothing
    Exit Sub

HandleErr:
    MsgBox "Error " & Err.Number & ": " & Err.Description, , _
     "CopyMailToClipboard"
    Resume ExitHere
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅将对话中的最新回复复制到剪贴板 的相关文章

  • JavaFX - Outlook 附件 - DnD

    您好 我需要一个 DnD 解决方案来将 Outlook 邮件附件拖到堆栈窗格中 JavaFX Outlook 2010 stackpaneDragAndDropZone setOnDragOver DragEvent event gt Dr
  • Range.End() 困惑

    我有一个关于 VBA 中 Range End 属性的一般性问题 我已经阅读了有关该房产的信息here http msdn microsoft com en us library bb221181 aspx 但我还是很困惑 例子 With w
  • 有没有办法将配置参数传递给 Outlook 插件

    我有一个 JS Outlook 插件 我希望能够将其部署到多个站点 但我希望将相同的代码部署到每个站点并在外部处理配置数据 如果可能 像 process env 适用于 Node js 服务器应用程序 之类的东西适用于客户端应用程序 我发现
  • IE.navigate2 因保护模式关闭而失败

    我正在从 Excel VBA 自动化 IE8 Excel 2010 Windows 7 Set IE CreateObject InternetExplorer Application IE Navigate2 URL 如果 URL 是处于
  • VBA 中的 VSTO:AddIn.Object 有时不返回任何内容 (null)

    Given VSTO 插件 An override object RequestComAddInAutomationService 它返回一个名为的类的实例Facade在我的场景中 Excel 2007 中的 VBA 宏可访问AddIn O
  • 实体框架、dll、excel

    我用C 编写了Excel使用的dll 该dll是COM注册的 我与 Excel 的连接没有问题 该 dll 使用实体框架 5 从 SQL Server 数据库检索数据 如果我通过控制台应用程序运行该 dll 则该 dll 工作正常 但是当我
  • VBA 访问:从另一个表单的代码刷新一个表单

    编辑 没关系有人帮助了我 form name recalc 或 form name refresh form main recalc 我有两种形式 主要 详细信息 在 主 表单中 我有一个在对话框中打开 详细信息 的按钮 问题是我在 详细信
  • 标准 VBA 函数“找不到项目或库”

    因此 我必须在我的 PC 上运行别人的 Excel 应用程序 并且在标准函数 如日期 格式 十六进制 中间等 上收到 找不到项目或库 的信息 一些研究表明 如果我在这些函数前加上 VBA 前缀 如 VBA Date 中那样 它会正常工作 网
  • 在 VBA 中按键对字典进行排序

    我使用 VBA 创建了一个字典CreateObject Scripting Dictionary 将源单词映射到要在某些文本中替换的目标单词 这实际上是为了混淆 不幸的是 当我按照下面的代码进行实际替换时 它将按照源单词添加到字典中的顺序替
  • 我需要代码在两行之间复制并粘贴到另一张表中,并给出任何值?

    例如 我有 50 行数据 第一行有学生的名字 我需要代码将数据从 RAM 复制到 RAMESH 在这之间我有 20 行 我需要代码来复制行并将其粘贴到另一张纸中 它不应该问我名字 默认情况下 它必须采用 RAM 和 RAMESH 名称 好的
  • 如何使用 VBA 将 mm/dd/yyyy 更改为 dd/mm/yyyy

    我在使用 VBA 将 mm dd yyyy 转换为 dd mm yyyy 日期格式时遇到问题 我有一个这样的表 仅供参考 该表是从报告工具自动生成的 字符串操作 或任何 Excel 函数可以提供帮助吗 希望知道如何解决这个问题的人可以给我一
  • MS Access 执行 POST Web 请求

    在我的 MS Access 应用程序中 我需要定期向我的网络服务器发送一批信息 我不需要任何花哨的东西 比如 SOAP XML RPC 或任何东西 只需一个简单的 POST 页面请求就足够了 我用谷歌搜索了一下 但找不到任何真正有用的东西
  • Word通过vba宏删除tabe列出现错误

    我想将excel中的数据复制到word表中 然后从表中删除一些列 我可以将数据复制到表中 但是当我删除列时会出现错误 无法访问此集合中的各个列 因为该表具有混合的单元格宽度 我的代码 Public Tbl1 As Table Sub cal
  • 指示电子邮件的类型

    我有以下自动化程序 它将电子邮件发送给我自己 并添加了特定的链接 import win32com client as win32 import easygui import tkinter as to from tkinter import
  • VBA 字符串 255 个字符限制

    我在使用 VBA 时遇到问题 并注意到它的字符串限制为 255 个字符 我实际上正在尝试通过 POST 发送 JSON 并暂停执行 我注意到该字符串始终只有 255 个字符 有没有办法调整字符串的大小或其他什么 我在这个问题上浪费了大约 6
  • VBA在多个文件夹中搜索特定子文件夹并移动其中的所有文件

    你能帮助我吗 我想要一个宏vba来搜索SPECIFIC例如 所有存在并移动其文件的文件夹和子文件夹之间的子文件夹 Xfolder P Desktop Folder1 subfolder SUBFOLDER1 Xfolder 我正在使用 VB
  • 支持 >65k 行的 Excel VBA SQL 驱动程序

    在 Excel 2010 中通过 VBA 查询 Excel 数据时 我遇到一个有趣的问题 我正在使用这些驱动程序连接到 xls 或 xls x m 文件 Sub OpenCon ByRef theConn As Connection ByV
  • 使用宏打开受信任文档或启用宏时 Excel 崩溃

    正如标题所示 我无法使用宏打开受信任的文档 Excel 立即崩溃 制作文档的副本允许其打开 因为该副本不受信任 并且我可以检查 VB 编辑器中的宏 但启用宏会导致另一次崩溃 为什么会发生这种情况以及我可以采取什么措施来解决它 我今天遇到了类
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 如何将参数从 Excel/VBA 传递到 Rstudio 中的脚本

    我正在尝试使用 Rstudio 从 VBA 打开 R 脚本 同时将参数传递给 R 脚本 然后我可以使用 commandArgs 访问该脚本 该问题与此处描述的问题非常相似 WScript Shell 用于运行路径中包含空格且来自 VBA 的

随机推荐

  • 在 foreach 循环内部和外部调用 SaveChanges() 有什么区别吗?

    假设对循环内部的 EF 实体进行了更改 在 foreach 循环中或循环外部调用 EF SaveChanges 之间是否存在任何性能优势 技术差异 YES 如果在循环内调用它 EF会将更改写回数据库对于每一个实体 每个实体都将进行自己的单独
  • Apache MQ Artemis - MQTT 保留消息对于连接到集群中其他节点的客户端不可用

    I have 4 ActiveMQ 阿耳忒弥斯 2 10 1实例运行在cluster 客户端 A 连接到其中一个节点并发布MQTTQoS 0 的消息并且保留 真 当新的 MQTT 客户端 B 连接到另一个节点在集群中并订阅了该主题 之前发送
  • Flutter报错无法启动守护进程

    我的 flutter 项目在我的旧笔记本电脑上运行顺利 但是当我使用我的新笔记本电脑时 我的 flutter 项目无法在调试模式下运行 这个错误 FAILURE Build failed with an exception What wen
  • 检查字符串是否包含CJK(中文)字符[重复]

    这个问题在这里已经有答案了 我需要检查一个字符串是否包含中文字符 搜索后我发现我必须使用正则表达式查看此模式 u31C0 u31EF 但我无法让正则表达式工作 有人经历过这种情况吗 正则表达式正确吗 正如所讨论的here https sta
  • Hibernate 的重复密钥问题

    使用 Hibernate 4 0 我有三个 hibernate 实体 歌曲 封面艺术 封面图片 Songs 代表音乐文件 CoverImage 代表图像 Cover Art 用于将封面图像与歌曲相关联 一首歌曲可以包含多个封面图像 Song
  • React Redux 与路由器位置、分页/排序和获取

    我正在编写一些通用的 Todo List 组件 具有以下功能 分页 排序 保留 URL 中的部分状态 页面 排序 使用 HTTP 请求异步获取数据 使用 redux saga 现在 我正在尝试寻找 最佳 redux 操作序列的模式 以使该操
  • 将资源放入jar文件中并将其公开给网络

    我有一个 Web 应用程序 其资源文件夹中有一堆 js 和 css 文件 我如何将它们公开到网络上以便能够在我的网页中引用它们 以及如何引用这些文件 我还想稍后将这些资源放在一个单独的 jar 文件中 并且 就像上一个问题一样 也将它们公开
  • Phonegap Hook - execvp 权限被拒绝

    我正在尝试运行我在网上找到的phonegap hook 但我总是在构建时遇到相同的错误 execvp Permission denied 该钩子是位于此处的 splash and icon 钩子 http devgirl org 2013
  • Dijkstra 算法是确定性的吗?

    我认为 Dijkstra 算法是确定的 因此如果您选择相同的起始顶点 您将得到相同的结果 到每个其他顶点的距离相同 但我不认为它是确定性的 它为每个操作定义了以下操作 因为这意味着它不必首先搜索最短距离 我对么 如果我错了 你能解释一下为什
  • 屏蔽 UIView、CALayer 的动画

    我正在努力实现以下目标 用户点击视图 circular视图会在其左侧弹出 其中包含一些图像内容 视图应该从触摸点开始动画到触摸视图外部左侧的最终帧 在动画过程中 它应该是一个圆圈 增长到正确的位置和大小 一切都与下面的代码配合得很好 仅此而
  • Css3 @fontface 不适用于 Chrome 17 和 Firefox 10

    我正在尝试将此代码用于阿拉伯字体的 fontface font face font family MothnnaFont src url fonts mothnna eot IE9 Compat Modes src url fonts mo
  • Spring Hibernate 5.4.22.Final:javax.persistence.TransactionRequiredException:升级 Spring Boot 时没有正在进行事务

    我最近从 Spring Boot 1 5 更新到 2 3 5 但在保存数据时遇到了一些问题 我的应用程序是 Spring Batch 它读取 处理数据并将数据写入数据库 读取器和处理器都很好 但编写器出现了问题 它在 1 5 spring
  • mod_pagespeed 缓存文件夹中的奇怪域

    大约一年前 我在我的 VPS 服务器上安装了 mod pagespeed 对其进行设置并使其运行 最近 我正在探索服务器上的文件 进入 pagespeed 缓存文件夹 发现了一些奇怪的文件夹 所有文件夹通常都以这种方式命名 2Fwww my
  • 如何创建自定义 Murmur Avalanche 混合器?

    我正在尝试使用 Avalanche 混合器来散列整数坐标 我一直在使用杂音3的 https en wikipedia org wiki MurmurHash cite note Horvath 732 位和 64 位雪崩混合器这样做 而不是
  • QLPreviewController 隐藏底部工具栏

    I use QLPreviewController在我的应用程序中 想要隐藏底部工具栏 该工具栏允许在其数据源项目中移动 有可能以某种方式做吗 我尝试将其搜索为subview of QLPreviewController s view但它只
  • 如何捕获 TDataModule.OnCreate 事件中的异常?

    我在 Delphi 中遇到了以下问题try except block 我有一个简单的应用程序 一个名为 MainFormfr MAIN和一个TDataModule named DM DM不是自动创建的 而是在运行时创建的fr MAIN s
  • 如何在 Rails 4 中重新加载路线 /config/routes/* ?

    如何强制rails 4重新加载所有路线文件 也就是说 无需重新启动应用程序即可从 config routes 创建路由 rb 已加载 我在 config routes 中将它们分开 rb 但是这些 config routes 文件不会重新加
  • Azure Blob - 503 出口超出帐户限制

    所以我偶尔会收到这个错误 初始化流读取器时出错或未找到 Blob 响应状态 代码不表示成功 503 出口超过该帐户 限制 我不知道帐户限制 并且文件不应大到足以突破吞吐量限制 Blob 存储具有一些令人惊讶的高吞吐量限制 有谁见过这个并知道
  • X11 为什么我无法绘制任何文字?

    我正在努力学习X11 这对我来说非常困难 因为我没有 Linux 上的窗口应用程序的经验 我写了一些简单的代码 但无法解决这个不可见的文本问题 一切可能都工作正常 当我尝试使用 DrawRectangle 函数绘制矩形时 它正在工作 这是代
  • 仅将对话中的最新回复复制到剪贴板

    我有以下 Outlook VBA 代码 可将所选电子邮件的正文复制到 Windows 剪贴板 Sub CopyMailToClipboard On Error GoTo HandleErr Copies the selected messa