gpt4 book ai didi

vba - Excel VBA--想最小化内置对话框

转载 作者:行者123 更新时间:2023-12-02 22:58:51 24 4
gpt4 key购买 nike

tl,dr: 我可以使 Application.Dialogs(xlDialogSendMail).Show 对话框最小化吗?

过程:我有一个解决方案,可以自动创建文件、编译电子邮件并附加文件。用户可以查看并选择发送电子邮件或关闭而不发送。

问题:问题是某些用户希望将内容复制/粘贴到自动编译的电子邮件正文中。这是不可能的,原因有两个:

  • 编译电子邮件的例程使用剪贴板。
  • 该对话框不允许用户最小化(因此他们可以在电子邮件编译后复制内容)。

潜在解决方案:

  • 在电子邮件编译过程中请勿使用剪贴板。我不想这样做,因为这需要对代码进行适度的修改。
  • 调用 Outlook 对象库以这种方式创建电子邮件。我不想这样做,因为该工具已分发给大约 110 名使用不同版本 Excel 和 Outlook 的人,并且(Outlook 库)兼容性问题会很严重。
  • 在电子邮件编译例程之后管理剪贴板,以使上次用户创建的“副本”再次处于事件状态。这个解决方案似乎可行,但并不理想。
  • 允许内置对话框为模式/最小化,以便用户可以在编译后复制其内容。 这个解决方案似乎是最好的。

非常感谢任何答案/想法/指导!

最佳答案

“最小化”按钮对于“SendMail”对话框没有意义,因为此对话框是模式对话框 - 即必须先将其关闭,然后才能继续在 Excel 中工作。此外,此 Excel 对话框对象是在库内定义的,并且不容易通过 VBA 进行修改。

用户的解决方法是指示他们在打开对话框之前将文本复制到剪贴板缓冲区中。除非您的应用程序在创建邮件正文时破坏了剪贴板,否则该邮件正文将可用于粘贴。

如果您的例程中需要剪贴板内容,您可以首先将当前内容读出到文本变量中,并在退出时将其恢复到剪贴板。

关于vba - Excel VBA--想最小化内置对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com