【问题标题】:How to paste text with bullets, bold characters and break lines into a single excel cell using VBA code?如何使用 VBA 代码将带有项目符号、粗体字符和换行符的文本粘贴到单个 Excel 单元格中?
【发布时间】:2015-06-29 20:25:57
【问题描述】:

我想做相当于在工作表中选择一个单元格,按 F2,然后按 CTRL+V,以便保留所有格式,如项目符号、粗体字符和断线,并粘贴到一个单元格中。请注意,我不是从 excel 工作表中复制,而是我使用 excel vba 从 Word 文档中复制。

我试过了:

Sheets(1).Cells(1,1).Select
SendKeys "{F2}", True
SendKeys "v", True
Application.Wait(Now + TimeValue("0:00:5"))
Sheets(1).Cells(1,2).Select

但上面的代码粘贴在活动工作表的单元格(1,2)而不是(1,1)中。 请为此建议一种替代方法。

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    要复制和粘贴“保留格式”的单元格(即粗体、下划线、文本列、换行符、特殊字符(如项目符号)等。您可以使用记录宏创建如下代码,这是简单的复制,粘贴。您不需要按 F2(因为这只会让您访问原始值 - 而不是格式):

    Range("C3").Select
    Selection.Copy
    Range("D6").Select
    ActiveSheet.Paste
    

    根据需要修改此示例:

    With Sheets(1)
        .Cells(1, 1).Copy
        .Cells(1, 2).Select
        .Paste
    end with 
    

    【讨论】:

    • 谢谢,但我是从 word 文档而不是从 excel 复制的。你能建议一些我可以在不丢失格式的情况下组合单元格的方法吗?
    • 对不起,我重新阅读了这个问题!现在没时间了 请参阅here,这是从单词 VBA 开始的最佳位置。另外,在 google 上搜索“excel 合并单元格而不丢失格式”,那里看起来像是可以帮助您的链接。
    【解决方案2】:
    SendKeys "^v", True
    

    这将发送 Ctrl+v。您不需要 Wait 命令,因为 {SendKeys} 的 {True} 参数告诉 Excel 在返回继续宏之前等到它完成。我不确定是否有更好的不涉及 SendKeys 的方法来执行此操作,除非您想粘贴到多个单元格中然后将它们组合起来。

    【讨论】:

    • 是的,我想过合并它们,但是合并时会丢失粗线等格式。
    • 您可以为单元格内的字符指定格式。您可能需要将文本粘贴到多个单元格中,捕获每个单元格的格式,合并,然后重新应用格式。
    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    相关资源
    最近更新 更多