Characters.FontStyle无法处理具有自定义数字格式的单元格

问题描述 投票:0回答:1

我打算让用户将文件名加载到“管理单元格”(在代码中引用),并通过自定义数字格式“标记”这样的单元格,因此省略了与此类相邻的附加列(文件名: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

excel vba formatting cell
1个回答
0
投票

其中一个变种怎么样?

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

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

我的第一个例子只使用了额外的块字符。

我的第二个和第三个例子使用相同的用户定义数字格式和“Unicode Lisu Letters Tsa,I,La,E,Na,A,Ma,E”,它们受标准字体格式的影响较小。 如果为单元格选择粗体字体(例如Arial Black)或浅色字体(例如Apex Rounded Book),则差异变得可见。

© www.soinside.com 2019 - 2024. All rights reserved.