使用VBA将单元格值保留在Excel中保留格式从一个单元格到另一个单元格

Bla*_*sor 8 excel formatting vba copy cell

在excel中,我试图将文本从一个单元格复制到另一个单元格中的另一个单元格.源单元格包含格式化文本(粗体,下划线,不同颜色).但是当我使用VBA将文本复制到另一个单元格时,格式化将丢失.

我知道这是因为excel只复制文本值.有没有办法可以从单元格中读取HTML文本 (而不是纯文本)

我用Google搜索了这个并没有得到任何答案.我知道如果我们使用复制和粘贴方法,我们可以复制格式.例如

Range("F10").Select
Selection.Copy
Range("I10").Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud)

但是我想在没有复制和粘贴的情况下这样做,因为我的目的地是一个合并的单元格,而且我的源单元格大小不一样.excel VBA中是否有可用的选项来执行此操作?

编辑:我能够使用以下代码解决它.

Range("I11").Value = Range("I10").Value
For i = 1 To Range("I10").Characters.Count
    Range("I11").Characters(i, 1).Font.Bold = Range("I10").Characters(i, 1).Font.Bold
    Range("I11").Characters(i, 1).Font.Color = Range("I10").Characters(i, 1).Font.Color
    Range("I11").Characters(i, 1).Font.Italic = Range("I10").Characters(i, 1).Font.Italic
    Range("I11").Characters(i, 1).Font.Underline = Range("I10").Characters(i, 1).Font.Underline
    Range("I11").Characters(i, 1).Font.FontStyle = Range("I10").Characters(i, 1).Font.FontStyle
Next i
Run Code Online (Sandbox Code Playgroud)

小智 8

使用Excel 2010?尝试

Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Run Code Online (Sandbox Code Playgroud)


Sea*_*anC 5

要复制格式:

Range("F10").Select
Selection.Copy
Range("I10:J10").Select ' note that we select the whole merged cell
Selection.PasteSpecial Paste:=xlPasteFormats
Run Code Online (Sandbox Code Playgroud)

复制格式将破坏合并的单元格,因此您可以使用它将单元格重新组合在一起

Range("I10:J10").Select
Selection.Merge
Run Code Online (Sandbox Code Playgroud)

要复制单元格值而不复制任何其他内容(而不使用复制/粘贴),您可以直接处理单元格

Range("I10").Value = Range("F10").Value
Run Code Online (Sandbox Code Playgroud)

其他属性(字体,颜色)也可以通过以相同方式直接寻址范围对象属性来复制