如何为超过255个单元格中的单个字符设置字体格式

时间:2019-04-22 19:53:11

标签: excel vba

我正在使用Excel VBA构建带有格式化标记文本的单元格。在单元格超过255个字符之前,它可以正常工作。那时字体属性设置不正确。

我使用VBA添加带有Range.Value = Range.Value & newchar的字符,并且效果很好。但是使用Range.Characters(n,1).Font.property(例如NameColorStrikethroughUnderline)设置单个字符的字体属性在单元格超过255个字符后将无法正常工作。当一个单元格包含255个以上的字符时,如何将Font属性应用于单个字符?

对不起-这不是对该问题的很好描述。我正在添加一个字符,并立即格式化该字符的字体,然后添加并格式化下一个字符,依此类推。要超过255个字符,我需要使用&,但这会破坏单元格中已有文本的字体格式。

2 个答案:

答案 0 :(得分:0)

你好吗?

所以我尝试了您的代码,并用255个“ A”和255个“ B”填充了单元格A1

here is the code

然后使用字符函数

有结果

enter image description here

也许您使用错误的方法Characters(1,256)

Characters第一个参数是Init char,第二个参数是第一个参数之后的字符数。

希望对您有帮助

答案 1 :(得分:0)

在不看更多代码的情况下很难说自己在做什么错。但是,这是格式化单元格中各个字符的一种方法。而且我已经在单元格中测试了30,000个字符(尽管需要很长时间)。下面的代码将创建一个包含字符的单元格,并格式化具有多个特征的某些字符。示例是750个字符。

Option Explicit
Sub par()
    Dim R As Range
    Dim S As String
    Dim I As Long, J As Long

Set R = Range("A1")

For J = 1 To 10
For I = 48 To 65 + 26 * 2 + 5
    S = S & Chr(I)
Next I
Next J

Debug.Print Len(S)
R = S

For I = 1 To Len(S)
    Select Case Mid(S, I, 1)
        Case "A", "D", "Y", "a", "t", "x", "8"
        With R.Characters(I, 1)
            .Font.Bold = True
            .Font.Color = vbRed
            .Font.Strikethrough = True
            .Font.Size = .Font.Size + 2
        End With
    End Select
Next I

End Sub

enter image description here