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

2024-10-02 22:32:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个表格A6:E233的excel文件。我不得不将A列和B列连接起来,以便B中的值显示在新行中。我已经通过构建在Excel中的CONCATENATE函数(和CHAR(10)表示新行)实现了这一点。在

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

EXAMPLE1

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

EXAMPLE2

如何做到这一点?如果它是一个短表,我会手动执行,但由于我有几个文件,总共超过5000行,也许自动化的方式会更好。在

我已经找到了涉及这个问题的答案,但由于我不知道如何使用VBA,我或多或少地迷失了方向。我还使用了很多python,并查看了openpyexl和csv,但没有找到实现这一点的方法。在

谢谢你的帮助!在


Tags: 文件函数格式手动excel表格电子表格example1
2条回答

在excelvba中,需要使用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

格式如下:

enter image description here

来,试试这个代码。我根据你的截图做的。在

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

请让我知道,如果你有任何问题的代码如何工作!在

相关问题 更多 >