在Excel用户定义的函数中,如何确定正在使用哪种字体?

时间:2014-03-03 17:39:09

标签: excel excel-vba user-defined-functions vba

我有一个包含数千行的Excel文件。有些单元格粗体,有些则没有。通常我能够确定哪些单元格是粗体,哪些单元格没有使用此UDF:

Function isBold(cellBold)
    Application.Volatile
    If cellBold.Font.Bold = True Then
        isBold = 1
    ElseIf cellBold.Font.Bold = False Then
    isBold = 0
    Else
        isBold = 0
    End If
End Function

这适用于实际使用粗体应用于单元格的单元格除了导入数据之外,原始来源通过更改字体而不是通过将粗体应用于单元格而将文本从常规更改为粗体。

例如,常规字体是“Times New Roman”,粗体字体是“Times New Roman Bold”。因此,虽然在页面上看起来好像单元格已经应用了粗体,但上面的UDF不起作用。

如何更改UDF以便识别字体?

1 个答案:

答案 0 :(得分:3)

此代码查明字体名称是否包含“Bold”字符串,如果是,则将布尔值设置为1:

Function isBold(cellBold)
     Application.Volatile
     pos = InStr(cellBold.Font.Name, "Bold")
     If pos > 0 Then
        isBold = 1
     End If  
End Function