gpt4 book ai didi

vba - 访问剪贴板的第 N 项

转载 作者:行者123 更新时间:2023-12-02 11:53:07 26 4
gpt4 key购买 nike

有没有办法从剪贴板中检索多个项目?我正在使用这样的东西:

Dim clipboard As MSForms.DataObject
Dim str1 As String
Dim str2 As String

Set clipboard = New MSForms.DataObject

clipboard.GetFromClipboard
str1 = clipboard.GetText(1)
str2 = clipboard.GetText(2)

但是,我在为第二个变量赋值时遇到错误,内容如下:

  Run-time error '-2147221404 (800040064)':
DataObject:GetText Invalid FORMATETC Structure

非常感谢您的帮助!

最佳答案

原来有两个剪贴板:Windows 剪贴板和 Office 剪贴板。

Office 剪贴板最多可容纳 24 个项目(所有项目都可以是同一类型),而 Windows 剪贴板每种类型只能容纳一个项目。

  • 复制到 Windows 剪贴板就像突出显示一样简单输入 Ctrl-C。
  • 复制到 Office 剪贴板非常简单突出显示然后输入 Ctrl-CC。 Office 剪贴板仅处于事件状态如果至少有一个 Office 应用程序打开并处于事件状态时间。

在 VBA 中,使用 MSForms.DataObject 只能访问 Windows 剪贴板,因此只有一个文本项可用。经过各种搜索,我无法找到如何使用 VBA 中的 Office 剪贴板打开/控制/复制/粘贴。

话虽如此,在编写和运行 VBA 宏时可能没有理由使用任何剪贴板。您可以(暂时)将这些值存储在工作表上未使用的单元格中、公共(public)变量中、公共(public)对象中,甚至私有(private)变量(可能具有可公开访问的属性)中。所有这些方法的目的与在剪贴板中存储数据完全相同。

在浏览有关此主题的 interwebz 时,我遇到了一些有关使用剪贴板在不同工作簿之间或在 Excel-to-Word 等 Office 应用程序之间复制数据的引用资料。为此,您仍然不需要剪贴板,因为 VBA 可以打开远程/外部应用程序/工作簿/文档并直接复制/粘贴数据。

关于vba - 访问剪贴板的第 N 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37463817/

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