如何在Excel中的同一个单元格中使用两行不同的字体?

我有一个表格A6:E233的Excel文件。 我不得不连接列A和B,以便来自B的值显示在一个新行中。 我用CONCATENATE函数(和CHAR(10)换行)实现了这个function。

连接后,电子表格如下所示:

EXAMPLE1

现在,我还需要在单元格内的每一行使用不同的格式,即大小12,第一行粗体和第二行大小8:

EXAMPLE2

如何做到这一点? 如果这是一个简短的表格,我会手动完成,但由于我有几个文件,完全超过5000行,也许自动化的方式会更好。

我find了解决这个问题的答案,但是因为我不知道如何使用VBA,所以我或多或less地失去了知识。 我也使用了很多的python,并通过openpyexl和csv,但没有find办法如何实现这一点。

感谢您的帮助!

使用Excel VBA,您需要使用Range对象的Characters属性。 例如:

 Sub Test() Dim rngCell As Range Dim lngPos As Long 'get cell Set rngCell = Sheet1.Range("A1") 'find linebreak lngPos = InStr(1, rngCell.Value, vbLf, vbBinaryCompare) 'format either side rngCell.Characters(1, lngPos).Font.Bold = True rngCell.Characters(lngPos + 1, Len(rngCell.Value) - lngPos).Font.Color = 1234 End Sub 

其格式如下:

在这里输入图像说明

在这里,试试这个代码。 我根据你的截图build立这个。

 Sub partialFormatting() Dim tws As Worksheet Dim fr, lr As Integer Dim pos As Integer Set tws = ThisWorkbook.Worksheets("Sheet1") fr = 7 lr = tws.Range("A1000000").End(xlUp).Row For r = fr To lr With tws.Range("A" & r) pos = InStr(.Value, vbLf) With .Characters(Start:=1, Length:=pos - 1).Font .FontStyle = "Bold" .Size = 12 End With With .Characters(Start:=pos + 1, Length:=Len(.Value) - pos).Font .FontStyle = "Normal" .Size = 8 End With End With Next r End Sub 

如果您对代码的工作方式有任何疑问,请告诉我们!