下标(字体)在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 … endfunction,那么我可以做到这一点,但我很难找出与…结束的对象可以采取的。 在这个网站上他们说:

用…结束声明(Visual Basic)

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

但我不知道这是什么意思。 如果可以做这样的事情:

昏暗的一个string

one =“1”

用一个font.subscript = true结束

然后我可以想出如何做我想要的。 但是,带function似乎不作用于string。 我遇到的问题是,大部分的字体沿途的字体的build议使用单元格的方法,但我想填充一个数组,所以我遇到了麻烦。 再次,我想要做的是创build一个维度,只是一个下标,然后改变我的数组,如下所示:

 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 

据我所知,没有现成的方法或属性来存储font.Subscript属性的字符或一系列的字符也包含字符的string。

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

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

然后,当你写出variables,你会parsingstring,删除标签,并设置相应的font.Subscript属性。

然而,如果你总是给每个希腊字母附加一个'1',我只要把它附加到string上,然后在输出string的最后一个字符时设置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才能显示下标,例如用户表单上启用了Rich-Text的TextBox。 您应该能够以类似的方式在这些控件上使用.Characters对象。

有关更多信息,请参阅MSDN-Characters对象 。