使用 Font.Characters 在 Excel 中的单元格中设置文本格式的奇怪行为

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

我正在尝试设置 Excel 单元格内文本的格式。使用“字符”属性,我指定文本中要设为粗体的一小部分字符。然而,正在发生的事情是整个文本,从我的字符范围中的第一个字符到文本的末尾都被设为粗体。

我正在使用此代码将 Excel 单元格文本中的某些字符设为粗体:

私有子测试格式化()

Dim TSheet As Worksheet
Set TSheet = Worksheets("Test")

TSheet.Cells(5, 1) = "This is some text" & vbLf & "This is some more text"

With TSheet.Cells(5, 1)
    For i = 3 To 5
        .Characters(i).Font.Bold = True
    Next i
End With

结束子

结果是:

这是一些文字 这是更多文字

所以 Excel 似乎忽略了我只要求字符 3 到 5 为粗体的事实。

将代码更改为:

私有子测试格式化()

Dim TSheet As Worksheet Set TSheet = Worksheets("Test") TSheet.Cells(5, 1) = "This is some text" & vbLf & "This is some more text" With TSheet.Cells(5, 1) For i = 3 To 5 .Characters(i).Font.Bold = True Next i For i = 30 To 32 .Characters(i).Font.Bold = False Next i End With
结束子

这是一些文字 这是一些

更多文字 在这两种情况下,更改都会应用于从 For 循环中的第一个字符到文本末尾的整个文本,忽略我只想格式化 3 个字符。

有人可以帮忙吗?

excel vba formatting character cell
1个回答
0
投票
使用Characters (start, length),其中start是起始字符数,length是字符数

: TSheet.Cells(5, 1).Characters(3, 3).Font.Bold = True

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