excel vba中的下标(字体)

时间:2014-10-01 02:20:17

标签: excel vba

我正在尝试填充一个由希腊字母后跟下标“1”组成的数组。我已经有希腊字母部分:

Dim variables(), variables_o
j = 0
For i = 1 To 25
    If i = 13 Or i = 15 Then
    Else
    j = j + 1
    ReDim Preserve variables(j)
    variables(j) = ChrW(944 + i)
    End If
Next

但我的下标部分有问题。我认为如果我可以使用with ... end with feature,那么我可以做到,但是我无法弄清楚那些对象...最终可以采取。在这个网站上他们说:

使用...结束语句(Visual Basic)

objectExpression的数据类型可以是任何类或结构类型,甚至可以是Visual Basic基本类型,如Integer。

但我不知道这意味着什么。如果能做到这样的事情:

将其作为字符串调暗

一个=“1”

一个 font.subscript = true

结束

然后我可以弄清楚如何做我想做的事。但是with功能似乎不会对字符串起作用。我遇到的问题是,沿线某处的大多数字体建议使用单元格方法,但我想填充一个数组,所以我遇到了麻烦。我理想的做法是创建一些维度,它只是一个下标版本,然后按如下方式更改我的数组:

Dim variables(), variables_o
j = 0
For i = 1 To 25
    If i = 13 Or i = 15 Then
    Else
    j = j + 1
    ReDim Preserve variables(j)
    variables(j) = ChrW(944 + i) & subscript_one
    End If
Next

1 个答案:

答案 0 :(得分:2)

据我所知,没有开箱即用的方法或属性来存储一个字符或一系列字符的font.Subscript属性,该字符串也包含字符。

您可以使用内联标记(如HTML)来指示下标开头和结尾的位置。例如:

variables(j) = ChrW(944 + i) & "<sub>1</sub>"

然后,当你写出变量时,你会解析字符串,删除标签并相应地设置font.Subscript属性。

但是,如果你总是在每个希腊字母上附加一个'1',我只需将它附加到字符串,然后在输出时在字符串的最后一个字符上设置font.Subscript属性。例如:

variables(j) = ChrW(944 + i) & "1"

...

For j = 0 to Ubound(variables)
    With Worksheets("Sheet1").Cells(j + 1, 1) 
        .Value = variables(j) 
        .Characters(Len(variables(j)), 1).Font.Subscript = True 
    End With
Next j

如果您要在工作表中写入除单元格以外的其他内容,则必须支持Rich-Text才能显示下标,例如用户窗体上启用了富文本文本框。您应该能够以类似的方式在这些控件上使用.Characters对象。

有关详细信息,请参阅MSDN-Characters Object