我有一个数据库,我在其中实现了文件和电子邮件/附件的拖放功能,但我的用户有 1280p 屏幕,所以我认为他们可能更容易复制和粘贴(我可能只会使用“使用剪贴板中的数据”按钮)。问题是,我看到的用于从剪贴板获取数据的所有 VBA 代码都是针对使用 Excel 用户窗体的,而 DataObject 对象和 GetFromClipboard 方法所需的 MS Forms 库在不创建用户窗体的情况下甚至不可用。
我想可以将一些东西拼凑在一起,用用户窗体打开隐藏的 Excel 工作簿来充当某种数据代理,但我真的不想增加这种开销。
这个问题有一些误解。
您可以在 Access 中引用 Microsoft Forms 就可以了。只需打开参考浏览器,浏览至System32,添加FM20.dll
您可以使用
GetFromClipboard
而无需创建用户表单。只需先添加参考,然后:
Dim d As New DataObject
d.GetFromClipboard
还有关于如何在 Access 中使用 WinAPI 剪贴板的示例,例如https://learn.microsoft.com/en-us/office/vba/access/concepts/windows-api/retrieve-information-from-the-clipboard用于文本,https://stackoverflow.com/ a/53161232/7296893 用于电子表格数据。