Excel将一系列单元格值复制到剪贴板

gba*_*bic 1 excel vba excel-vba

我想将一个单元格区域(仅值/文本)复制到剪贴板,以便用户仅在将特殊值粘贴到另一个电子表格中时才不必粘贴特殊值。

这是我到目前为止的内容:

Private Sub CommandButton1_Click()
    With New DataObject
        .SetText Range("A32:Q32").Text
        .PutInClipboard
    End With
    'Range("A32:Q32").Copy
End Sub
Run Code Online (Sandbox Code Playgroud)

这给了我一个运行时错误

94无效使用Null

如果我只是使用注释掉的代码,Range.("A32:Q32").Copy它将复制公式,除非用户进行特殊粘贴,否则它们会遇到各种参考错误。

Sla*_*lai 5

这有点令人费解,但是获取文本>清除剪贴板>放回文本:

[A32:Q32].Copy
With New DataObject
    .GetFromClipboard
    s = .GetText
    .Clear
    .SetText s
    .PutInClipboard
End With
Run Code Online (Sandbox Code Playgroud)

Range.TextNull当范围中的各个单元格文本不同时,返回。