For i = 1 To 10
Set fomula = "162.1 ±0.5*66 ±0.3*6.6 +0.1"
l = Len("162.1 ±0.5*66 ±0.3*6.6 +0.1")
'在選中的內容中進行回圈,只要是下標,就洗掉
For t = 1 To l
If fomula.Characters(t).Font.Superscript = True Then
fomula.Characters(t).Delete
End If
Next t
t = 0
l = 0
"162.1 ±0.5*66 ±0.3*6.6 +0.1" 這個數字中凡是有正負值的都為上標
運行結果為 162.1±0.5*66±0.3*6.6,也就是只把最后一個數字的上標去除了,前面2個數字的上標未清除,在運行到前面2個數字的上標時, fomula.Characters(t).Font.Superscript=null,不能跳進if里面洗掉上標,這是什么原因
uj5u.com熱心網友回復:
A)上標是在字體中設定的,和字符本身無關,很可能兩個±就沒有設為上標。B)代碼有錯誤,呼叫一次 Delete,后面的字符會前移。回圈長度會越界、連續上標字符會被跳過。改用從右至左的回圈。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/57459.html
標籤:VBA
上一篇:VB猜數游戲問題
下一篇:求一個VB隨機抽選人名程式
