合并保留字符格式的2个Excel单元格的内容(使用VBA)

正如标题所说:我尝试将2个单元格的内容合并到Excel中的第3个。 在这里有一个类似的问题,但这些解决scheme不保持字符格式完整。 例如,部分源单元格内容格式为粗体和红色,其他部分正常。 当我像他们合并他们

Range("A3") = Range("A1") & Range("A2") 

那么A1和A2的任何格式都将丢失。 我需要的是保持格式完整的解决scheme。 这将成为一个更大的VBA程序的一部分,所以我需要一个VBA解决scheme,没有公式,请。 Excel版本是2002(XP)。

医生,这是一个有趣的问题。 我被困住了自己,但看到了价值,所以经过一番search,这里是我发现的。 从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个单元格()与您的特定单元格。 也许有人可以find一个更清洁的方式,但是当我testing这个,它工作,我理解你(和我)的愿望。
希望这可以帮助…

这是黑暗中的一点点,但是如果你可以写一个macros来做下面的事情,那么它看起来会很漂亮:

  1. 复制整个范围(例如, A1:B200 )进行合并。
  2. 打开一个新的Word文档。
  3. 粘贴(在Word中创build一个表格)。
  4. select表格。
  5. 做一个空白分隔符(或任何你想要的)“转换为文本”。
  6. 复制结果文本。
  7. 在Excel中粘贴到所需的位置(例如C1 )。

我知道你可以为Excel和Word编写VBAmacros,但是我怀疑你可以从Excel控制一个Word文档。 但是,您可能可以编写一个可以打开并控制两个文档的C#控制台应用程序。

我知道没有办法直接做到这一点,但是将范围复制到新范围并不难,然后遍历原始范围的每个字符的interior属性并复制属性。 这应该为结果范围内的每个字符保留颜色,字体样式等。

家里的时间在招手,所以我没有时间掀起一个例子,但我敢肯定,其他人编辑/答案,如果需要的话。