将Excel单元格中的文本输入到Word并保留格式

mdfafbf1  于 2022-11-26  发布在  其他
关注(0)|答案(3)|浏览(156)

我有以下代码

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

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

但不保留Excel单元格的格式
例如,如果Excel单元格为粗体,我希望在输入Word文档时保留该单元格
我知道它可以用复制和粘贴的方式工作,但我不想这样做

lf5gs5x2

lf5gs5x21#

单元格格式有许多部分,但以下几个部分可帮助您入门:

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)应该是单个单元格。

qlckcl4x

qlckcl4x2#

此示例过程创建一个新的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
r6vfmomb

r6vfmomb3#

所以你有一个单元格,你想把它的内容复制到一个单词中,医生?
我会做:

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

这将完全复制文本,因为它是原来的..字体,粗体,颜色等。
提醒:
单元格= Excel电子表格中的单元格
.Cell = Word文档中要粘贴到的单元格
但是,如果您想将字体修改为Arial,以更好地匹配WordDoc的其余部分,但仍保留原始颜色和粗体等(如果存在),只需添加:

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

你可以做同样的任何其他字体属性,如大小等关键是使这些变化后,它的复制到Word文档。
希望这能帮上忙-S

相关问题