如何在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
如果您对代码的工作方式有任何疑问,请告诉我们!