通过宏复制单元格的未格式化值

时间:2014-03-22 08:29:14

标签: excel vba excel-vba

我已根据特定情况创建了带有文本生成器的Excel工作表。

生成的文本基于参数,并使用 CONCATENATE 函数收集到单个单元格中的文本段落。

如果我将单元格的完成内容复制到基于HTML的编辑器(例如电子邮件)中,则会复制格式和表格(TD)。

有没有办法将文本(仅限值)复制到剪贴板?

我找到了使用以下Visual Basic代码将未格式化的内容粘贴到Excel中的单元格中的解决方案:

Sub Copy()

Sheet1.Range("GeneratedText").Copy
Sheet2.Cells(1, 1).PasteSpecial xlPasteValues
Sheet2.Cells(1, 1).Copy

End Sub

这会将未格式化的文本复制并粘贴到Excel中的新单元格中 - 但我希望将其粘贴到其他位置,以便将其存储在剪贴板中而不进行格式化。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你可以这样做:

Sub CopyValToClipboard()

  val = Sheet1.Range("GeneratedText") // Here, the val contains unformatted value of cell

  With New MSForms.DataObject
    .SetText val
    .PutInClipboard
  End With 

  Sheet2.Cells(1, 1).value = val

End Sub

如果在引用列表中找不到Microsoft Forms 2.0对象库,则浏览&添加对FM20.dll的引用:

enter image description here

它将立即开始显示:

enter image description here

希望它有所帮助!