在文本的一部分上设置字体(zh-CN,Excel)

时间:2016-03-09 20:41:21

标签: excel excel-vba vba

我在这里找到了关于格式化单元格部分的问题,但是colution一点都不起作用(不确定这是否与语言相关)。

Use different fonts in same Excel cell?

下面的

.text会返回单元格的全文,而不是单字符,因此我无法检查文字是否为西方文字。

Sub TMP()
'
' TMP Macro
'
For i = 1 To ActiveCell.Characters.Count
    With ActiveCell.Characters(i)
    If InStr(1, "ABCDEFGHIJKLMNOPRSTQUVWXYZabcdefghijklmnopqrstuvwxyz1234567890", .Text) > 0     Then
        .Font.Name = Arial
    End If
    End With
Next
End Sub

你知道任何关于这个故障的方法吗?

EDIT1: 我已经检查了IF的另一种方式:

InStr(1, "ABCDEFGHIJKLMNOPRSTQUVWXYZabcdefghijklmnopqrstuvwxyz1234567890", Mid(ActiveCell.Text, i, 1)) > 0

但它仍然没有更改.font.name属性(但如果请求则更改颜色)

EDIT2: 我发现那个故障在哪里:在合并的细胞上。没有注意到我混合没有合并。我打赌下面的答案将适用于Mid如果我找到方法,取消合并细胞而没有视觉效果。

1 个答案:

答案 0 :(得分:1)

尝试:

Dim I As Long
For I = 1 To ActiveCell.Characters.Count
    With ActiveCell.Characters(I, 1)
        If .Text Like "[A-Za-z0-9]" Then
            .Font.Name = "Arial"
        End If
    End With
Next I