正如标题所说:我尝试将2个单元格的内容合并到Excel中的第3个单元格中。有一个类似的问题here on SO,但这些解决方案不保持字符格式完整。例如,源单元格内容的部分格式为粗体和红色,其他部分是正常的。当我合并它们时
Range("A3") = Range("A1") & Range("A2")
然后A1和A2的任何格式都会丢失。我需要的是保持格式完整的解决方案。这将是更大的VBA计划的一部分,所以我需要一个VBA解决方案,没有公式。 Excel版本是2002(XP)。
答案 0 :(得分:3)
Doc,这是一个有趣的问题。我被自己难过,但看到了价值,所以经过一番搜索,这就是我找到的。从vbaexpress开始,我对单元格格式有了基本的了解,我在下面修改了它。
Sub Merge_Cells()
Dim iOS As Integer
Dim rngFrom1 As Range
Dim rngFrom2 As Range
Dim rngTo As Range
Dim lenFrom1 As Integer
Dim lenFrom2 As Integer
Set rngFrom1 = Cells(1, 1)
Set rngFrom2 = Cells(1, 2)
Set rngTo = Cells(1, 3)
lenFrom1 = rngFrom1.Characters.Count
lenFrom2 = rngFrom2.Characters.Count
rngTo.Value = rngFrom1.Text & rngFrom2.Text
For iOS = 1 To lenFrom1
With rngTo.Characters(iOS, 1).Font
.Name = rngFrom1.Characters(iOS, 1).Font.Name
.Bold = rngFrom1.Characters(iOS, 1).Font.Bold
.Size = rngFrom1.Characters(iOS, 1).Font.Size
.ColorIndex = rngFrom1.Characters(iOS, 1).Font.ColorIndex
End With
Next iOS
For iOS = 1 To lenFrom2
With rngTo.Characters(lenFrom1 + iOS, 1).Font
.Name = rngFrom2.Characters(iOS, 1).Font.Name
.Bold = rngFrom2.Characters(iOS, 1).Font.Bold
.Size = rngFrom2.Characters(iOS, 1).Font.Size
.ColorIndex = rngFrom2.Characters(iOS, 1).Font.ColorIndex
End With
Next iOS
End Sub
用你的特定细胞更换3个细胞()。也许有人可以找到一种更干净的方式,但是当我测试它时,它就像我理解你(和我)想要的那样有效 希望这会有所帮助...
答案 1 :(得分:1)
这是在黑暗中的一点点,但如果你能以某种方式编写一个执行以下操作的宏,它似乎可以很好地工作:
A1:B200
)。C1
)。我知道您可以为Excel和Word编写VBA宏,但我怀疑您是否可以从Excel控制Word文档。您可能可以编写一个可以打开和控制两个文档的C#控制台应用程序。
答案 2 :(得分:0)
我知道没有办法直接这样做,但是将范围复制到新范围然后循环遍历原始范围的每个字符的interior
属性并将属性复制到。这应该保留结果范围内每个字符的颜色,字体样式等。
家庭时间在召唤,所以我没有时间掀起一个例子,但我确信其他人可以根据需要进行编辑/回答。