如何将文本从Excel发送到一个单词(单元格)为粗体的Word?



我有一个包含 28 列数据的电子表格。 根据哪些列具有数据,通过使用 if 语句创建句子。 创建句子后,它将被发送到Word文档。 其中两个单元格中的数据需要格式化,A 列单元格需要加粗和下划线,另一个单元格在输出到 Word 时只需加下划线。 这些单元格没有在Excel中格式化(尽管如果它会更容易,我可以更改它)。 Excel只是保存数据,因为它是通过Word呈现给其他人的,它需要具有格式以使读者受益。 我知道如何将数据输出到 Word,但由于这是我第一次这样做,我不知道如何传递格式。 我想也许是通过特殊粘贴,但同样我不知道该怎么做。 下面是我的代码的适用部分。

一个名为strLineofText的字符串是用单元格中的数据构建的。 当单元格 A 和单元格 I 添加到字符串中时,需要使用粗体和下划线的单元格 A 数据进行格式化。 我只包括下面适用于单元格 A 的部分。

Const strSHEET_NAME = "Sheet1"
Dim strLineOfText As String       
Dim blnNewApp As Boolean
Dim wordApp As Object
Dim wordDoc As Object
Dim j As Long
On Error Resume Next
Set wordApp = GetObject(, "Word.Application")
On Error GoTo ErrorHandler
If wordApp Is Nothing Then
Set wordApp = CreateObject("Word.Application")
blnNewApp = True
End If
Set wordDoc = wordApp.Documents.Add()
With ThisWorkbook.Sheets(strSHEET_NAME)
For j = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
strLineOfText = .Cells(j, "A").Text & ", enlisted " & .Cells(j, "B") & ", served " & .Cells(j, "C") & ", " & .Cells(j, "D") & ", " & .Cells(j, "E")
wordApp.Selection.TypeText strLineOfText
wordApp.Selection.TypeParagraph
Next j
End With
wordApp.Visible = True
AppActivate wordApp.Caption

为什么不分解字符串并在部分之间切换格式? 这是您的代码,经过调整:

With ThisWorkbook.Sheets(strSHEET_NAME)
For j = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
wordApp.Selection.Font.Bold = True
wordApp.Selection.Font.Underline = True
wordApp.Selection.TypeText .Cells(j, "A").Text
wordApp.Selection.Font.Bold = False
wordApp.Selection.Font.Underline = False
wordApp.Selection.TypeText ", enlisted " & .Cells(j, "B") & ", served " & .Cells(j, "C") & ", " & .Cells(j, "D") & ", " & .Cells(j, "E")
Next j
End With

一般来说,为了弄清楚这样的事情,使用 Excel 中的宏录制器将为您提供一个基本的代码块,然后您可以清理和简化这些代码块。

假设您在单元格"A1"中有以下文本:

This is a test of bold face. 

你想用粗体字来突出"测试"这个词。 此代码是宏录制器生成的代码的稍微清理版本:

With Range("A1").Characters(Start:=11, Length:=4).Font
.Name = "Calibri"
.FontStyle = "Bold"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontMinor
End With

实际上,您可以省略除".FontStyle = Bold"选项,但我想包括这些选项,以便您可以看到可以使用此技术控制文本格式的几乎任何属性。

设置文本格式后,您可以轻松地剪切并粘贴到 Word。

相关内容

最新更新