Characters.FontStyle不适用于具有自定义数字格式的单元格

时间:2019-02-16 08:17:55

标签: excel vba formatting cell

我打算让用户将文件名加载到“管理单元”(在代码中引用)中,并通过自定义数字格式对单元进行“标记”,因此省去了诸如此类的相邻列(文件名:XXX)。

出于可读性考虑,我打算将“ Filename”用粗体显示,将“ XXX”用普通的.fontStyle表示。

.characters.FontStyle似乎不适用于具有自定义数字格式(例如numberformat =“”“ Filename .:”“ @”)的单元格

将单元格设置为标准数字格式会应用两个.FontStyles。

手动将单元格设置为粗体,然后通过vba进行反向操作也不起作用。在.FontSyle“调整”之后设置自定义数字格式也不起作用。

Sub test()
    With Range("A1")
        .NumberFormat = """Filename: ""@"
        .Value = "Sample.csv"
        lngPos = InStr(.Text, ":")
        Debug.Print lngPos
        With .Characters(Start:=1, Length:=lngPos - 1).Font
            .FontStyle = "Bold"
        End With
    End With
    With Range("A2")
        .Value = "Filename: Sample.csv"
        lngPos = InStr(.Text, ":")
        Debug.Print lngPos
        With .Characters(Start:=1, Length:=lngPos - 1).Font
            .FontStyle = "Bold"
        End With
    End With
End Sub

Sample

我想将单元格状态为“ Filename:Sample.csv”,粗体为“ Filename:”,以正常字体样式设置为Sample.csv,但仅将“ Sample.csv”作为cell.value

1 个答案:

答案 0 :(得分:0)

这些变体之一怎么样?

这是工作表中的表示形式:
Screenshot of 3 examples

这些是相应的用户定义格式(您的,我的第一个带有块的,我的第二个和第三个):
The 2 used user-defined formats

我的第一个示例仅使用了额外的块字符。

第二个和第三个示例使用与“ Unicode Lisu字母Tsa,I,La,E,Na,A,Ma,E”相同的用户定义数字格式,这些数字格式受标准字体格式的影响较小。
如果您为该单元格选择了粗体字体(例如Arial黑色)或浅色字体(例如Apex圆形书),则可以看到差异。