首页 > 解决方案 > VBA O365 Mac Excel 复制和带有链接的 Word PasteSpecial = True 问题

问题描述

我在Excel 16.32上,我正在重写旧的 Windows VBA 以将其转换为 Mac使用(想要关闭我们的终端服务器)。

我对打开和保存文件(沙盒)没有任何问题,并且工作得最多。pastespecial但最大的问题是我无法link:=true正常工作。

所以:

myDoc.Bookmarks.Item("FastBetRubr").Range.PasteSpecial DataType:=wdPasteText, Placement:=wdInLine, DisplayAsIcon:=False, Link:=False

正在工作中

但:

myDoc.Bookmarks.Item("FastBetRubr").Range.PasteSpecial DataType:=wdPasteText, Placement:=wdInLine, DisplayAsIcon:=False, Link:=True

不工作并给出5345 错误(不使用错误代码)。

我们真的需要这些链接,如果我做一个断点然后在 word 中粘贴特殊,它就可以工作。如果只是尝试正常粘贴特殊,它也可以工作。

这些文件位于 SMB 共享上,我尝试在pastespecial之前保存这两个文档并且不保存 -没有变化。

这仍然是沙盒错误还是 Excel-Word 粘贴在 Mac O365 中不起作用?

标签: excelvbamacosms-word

解决方案


  1. 它看起来像 Mac Word 中的错误(错误)。要么,要么微软认为人们不应该在 Mac 上使用未编码的文本。我在 v16.31 上得到了同样的结果,当尝试使用文本格式使用链接进行选择性粘贴时,同样的问题(带有对话框)。

  2. 在这里,我可以通过使用 Unformatted Unicode Text 选项插入链接来使其工作。为此,请使用

    myDoc.Bookmarks.Item("FastBetRubr").Range.PasteSpecial DataType:=22, Placement:=wdInLine, DisplayAsIcon:=False, Link:=True
    
  3. Microsoft 似乎没有维护 wdPasteDataType 枚举,因此没有可以使用“wdUnicodeText”等内置常量来代替“22”

  4. 在这种情况下,Word 插入一个带有附加 \u 开关的 LINK 字段,该开关指定 Unicode 编码。如果您删除该开关并尝试更新该字段,您会看到一条错误消息,提示 Word 找不到该文件。


推荐阅读