我正在使用Excel VBA构建带有格式化标记文本的单元格。在单元格超过255个字符之前,它可以正常工作。那时字体属性设置不正确。
我使用VBA添加带有Range.Value = Range.Value & newchar
的字符,并且效果很好。但是使用Range.Characters(n,1).Font.property
(例如Name
,Color
,Strikethrough
,Underline
)设置单个字符的字体属性在单元格超过255个字符后将无法正常工作。当一个单元格包含255个以上的字符时,如何将Font属性应用于单个字符?
对不起-这不是对该问题的很好描述。我正在添加一个字符,并立即格式化该字符的字体,然后添加并格式化下一个字符,依此类推。要超过255个字符,我需要使用&,但这会破坏单元格中已有文本的字体格式。
答案 0 :(得分:0)
你好吗?
所以我尝试了您的代码,并用255个“ A”和255个“ B”填充了单元格A1
然后使用字符函数
有结果
也许您使用错误的方法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