从Excel单元格输入文本到Word并保留格式

时间:2011-11-23 16:46:55

标签: excel vba ms-word

我有fllowing代码

strMyFormat1 = oWB.Worksheets(strSelectedSheet).Range(strStemLocation).NumberFormat

WordApp.Selection.TypeText Format(oWB.Worksheets(strSelectedSheet).Range(strStemLocation), strMyFormat1) & vbCr

但它不保留Excel Cell的格式

e.g。如果Excel单元格是粗体,我希望在输入我的单词doc

时保留它

我知道它适用于复制和粘贴,但我不想这样做

3 个答案:

答案 0 :(得分:0)

单元格格式有很多部分,但这里有一些可以帮助您入门:

Dim rng As Excel.Range
Set rng = oWB.Worksheets(strSelectedSheet).Range(strStemLocation)
With Selection
    .Text = rng.Text
    .Font.Bold = rng.Font.Bold
    .Font.Color = rng.Font.Color
End With

注意:使用range对象的Text属性来获取格式化版本;使用Value获取未格式化的版本。另请注意,范围对象(rng)应该是单个单元格。

答案 1 :(得分:0)

此示例过程创建一个新的Word文档,并在活动的Excel工作表中添加每个单元格的内容,保留(某些)格式:

Sub ExportToWord_Example2()
    Dim WordApp As Word.Application
    Dim doc As Word.Document
    Dim rng As Range

    Set WordApp = CreateObject("Word.Application")
    With WordApp
        .Visible = True
        Set doc = .Documents.Add
    End With
    For Each rng In ActiveSheet.UsedRange
        With doc.Paragraphs(doc.Paragraphs.Count).Range
            .Text = rng.Text
            .Font.Bold = rng.Font.Bold
            .Font.Color = rng.Font.Color
        End With
        doc.Range.InsertParagraphAfter
    Next rng
End Sub

答案 2 :(得分:0)

因此,您有一个单元格,并且想要将其内容复制到Doc一词中?
我会的:

Cells(currentRow, currentCol).Copy
.Cell(2,1).Range.PasteAndFormat (wdFormatOriginalFormatting)

这将完全复制原始文本。字体,粗体,颜色等。

提醒:
单元格= Excel电子表格中的单元格
.Cell =您要粘贴到Word文档中的单元格

但是,如果您想将字体修改为Arial,以更好地匹配WordDoc的其余部分,但如果存在,仍保留原始颜色和粗体等。只需添加:

.Cell(2,1)Range.Font.Name ("Arial")

您可以对任何其他Font属性(例如size等)执行相同的操作 关键是在将这些更改复制到Word文档之后进行这些更改。

希望这可以帮助某人。 -S