我找了几个小时才能得到满意的答案,而且找不到一个,所以我自己动手了。
例如,假设单元格A1 =" word1",A2 =" word2 ",A3 =" word3"和A4 =" word4。"
我希望B1成为" word1 word2 word3 word4"
如果A列中没有,任何或所有单词都是粗体,我希望它反映在B1中。像这样:
Sub test1()
Dim Row As Integer
Dim Start As Integer
Dim Length As Integer
' concatenate the words with a space between each
Range("B1").Value = ""
For Row = 1 To 4
Range("B1").Value = Range("B1").Value & " " & Cells(Row, "A").Value
Next Row
' match bold formatting
Start = 1
For Row = 1 To 4
Length = Len(Cells(Row, "A").Value)
Range("B1").Characters(Start, Length + 1).Font.Bold = Cells(Row, "A").Font.Bold
Start = Start + Length + 1
Next Row
End Sub
我发现我需要两个独立的循环来完成这项工作。使用一个循环,Excel在第一个粗体后面的所有单词都加粗,除了最后一个单词(如果它不是粗体)。
为什么我需要在上面的代码中使用(Start,Length + 1)?
答案 0 :(得分:0)
我知道这不是一个确切的答案,但也许可以为您提供想法:
ResourceChangeListener
您需要找到如何使用符合您需求的功能设置“开始”和“长度”值。
With ActiveCell.Characters(Start:=13, Length:=6).Font
.FontStyle = "Bold"
End With
的使用使得在开始之前选择单元格中的所有文本。