2014-10-01 42 views
1

我想填充由希臘字母組成的數組,後跟下標「1」。我已經有希臘字母部分:Excel中的下標(字體)vba

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功能,那麼我可以做到這一點,但我無法弄清楚以...結束的對象可以採用哪些對象。在這個網站上,他們說:

隨着... END隨着語句(Visual Basic)

objectExpression的數據類型可以是任何類或結構類型,甚至一個Visual Basic基本類型,如整型。

但我不知道這意味着什麼。如果能做到這樣的事情:

昏暗的一個作爲字符串

一個=「1」

一個 font.subscript =真 結束與

然後,我可以弄清楚如何做我想做的事。但是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 

回答

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的TextBox。您應該能夠以類似的方式在這些控件上使用.Characters對象。

有關更多信息,請參見MSDN-Characters Object

+0

這是一個好主意。我從來沒想過這點。感謝您的意見。 – user147178 2014-10-01 05:37:52