excel 公式格式

excel 公式格式

我在 Excel 中有以下公式:

=IF(A5="File Start","File Creation DateTime = "&MID(C5,113,13),IF(A5="Start","Statement Date = "&MID(C5,65,8)&" | Opening Balance Date = "&MID(C5,88,8),IF(A5="Statement","Statement Date = "&MID(C5,65,8)&" | Value Date = "&MID(C5,108,8)&" | Booking Date = "&MID(C5,116,8),IF(A5="End","Statement Date = "&MID(C5,65,8)&" | Closing Balance Date = "&MID(C5,88,8),""))))  

其结果如下:

结算日期 = 20110217 | 起息日 = 20101126 | 预订日期 = 20110218

我希望它看起来像是:

结算日期 =20110217| 起息日 =20101126| 预订日期 = 20110218

或者

结算日期 = 20110217|起息日 = 20101126|预订日期 = 20110218

选项 2 中的粗体项目是不同的颜色。

答案1

我认为您无法修改公式来更改字体。但是,如果您可以接受将公式结果复制并粘贴到新单元格中,那么您可以使用 VBA 操作该单元格中的文本。

下面的代码从单元格 A5 复制字符串“结算日期 = 20110217 | 起息日 = 20101126 | 预订日期 = 20110218”,然后将其粘贴到单元格 B5 中。(您可能需要“粘贴特殊值”。)然后,它会检查单元格 B5 中的字符串,查找数字日期的起始位置,我假设该位置始终为 8 位数字。最后,它会“加粗”字符串中的所有数字,这是重新格式化字符串的首选方法。

ChangeNumberFontInStringToBold()
'1.  Copy & paste the string to a new cell.
Range("A5").Select
Selection.Copy
Range("B5").Select
ActiveSheet.Paste

'2.  Find the start position of the numerics; load into array
Range("B5").Select

mytext = Range("b5").Text
myLength = Len(mytext)

Dim mystart() As Integer        'array to hold the starting positions of the numerics
Dim j
j = 0


For i = 1 To myLength
    myChar = Mid(mytext, i, 1)
    If IsNumeric(myChar) Then
        ReDim Preserve mystart(j)
        mystart(j) = i
        j = j + 1
        i = i + 10
    End If
Next i

'3.  Bold all the numerics
For k = 0 To UBound(mystart)
    With ActiveCell.Characters(Start:=mystart(k), Length:=8).Font
        .Name = "Arial"
        .FontStyle = "Bold"
    End With
Next k

'4. Park the cursor elsewhere
Range("C5").Select

子目录结束

相关内容