Board logo

標題: 請問如何將多個儲存格內的數字快速一起下標? [打印本頁]

作者: 棋語鳥鳴    時間: 2011-9-5 18:18     標題: 請問如何將多個儲存格內的數字快速一起下標?

假設A1:F90儲存格中有英文與數字的組合
例:A5GR95J6L8W9,請問要如何讓多個儲存格內的數字(紅色部分)全部下標?
作者: chin15    時間: 2011-9-6 08:41

假設A1:F90儲存格中有英文與數字的組合
例:A5GR95J6L8W9,請問要如何讓多個儲存格內的數字(紅色部分)全部下 ...
棋語鳥鳴 發表於 2011-9-5 18:18
  1. Sub yy()
  2. For Each c In [a1:f90]
  3. For i = 1 To Len(c)
  4. If Asc(Mid(c, i, 1)) < 64 Then
  5. c.Characters(i, 1).Font.Subscript = True
  6. End If
  7.     Next
  8. Next
  9. End Sub
複製代碼

作者: 棋語鳥鳴    時間: 2011-9-6 21:13

本帖最後由 棋語鳥鳴 於 2011-9-6 21:14 編輯

回復 2# chin15


    感謝您的回覆!解決了我不少的問題!
能問一下第四行中Asc還有<64是什麼意思嗎??
作者: kimbal    時間: 2011-9-6 23:19

ASCII 表下65以前的字粒
http://www.asciitable.com/
64=@, 65=A,  66=B,.... 89=Y, 90=Z,...97=a (小寫),98=b,....
作者: GBKEE    時間: 2011-9-7 09:14

尋找數字可用 If Mid(c, i, 1) Like "[0-9]" Then
替換 If Asc(Mid(c, i, 1)) < 64 Then
作者: 棋語鳥鳴    時間: 2011-9-7 19:37

回復 5# GBKEE
回復 4# kimbal
原來如此,2位大大讓多多增了知識了!但是小弟有1點想不透!為什麼我將此巨集改成下面方式(我想將範圍改在儲存格上)!卻不能使用,請問是哪裡錯誤了??
  1. Sub yy()
  2. Dim k As Range
  3. Dim y As Range
  4. Set k = [a1]
  5. Set y = [b1]
  6. For Each c In [k:y]
  7. For i = 1 To Len(c)
  8. If Asc(Mid(c, i, 1)) < 64 Then
  9. c.Characters(i, 1).Font.Subscript = True
  10. End If
  11. Next
  12. Next
  13. End Sub
複製代碼

作者: GBKEE    時間: 2011-9-7 19:51

本帖最後由 GBKEE 於 2011-9-7 19:54 編輯

回復 6# 棋語鳥鳴
For Each c In Range(k.Address, y.Address)
  1. Set k = [a1]
  2. Set y = [b1]
  3. MsgBox [k:y].Address   
  4. MsgBox Range(k.Address, y.Address).Address   
複製代碼

作者: 棋語鳥鳴    時間: 2011-9-8 20:04

本帖最後由 棋語鳥鳴 於 2011-9-8 20:06 編輯

回復 7# GBKEE


    我這樣測試的結果!只有A1跟B1這2個儲存格會下標而已!
我如果想讓他抓取A1與B1上的文字!來針對位置來做下標!請問要如何修改!
例如:我在A1打B10
                   B2打C21
他就會自動針對B10:C21範圍內做下標!
作者: GBKEE    時間: 2011-9-8 20:28

回復 8# 棋語鳥鳴
所以話要說清楚,就不浪費時間
For Each c In Range(k.Value, y.Value)
作者: 棋語鳥鳴    時間: 2011-9-8 23:12

回復 9# GBKEE


    原來還有這一招喔!小弟才疏學淺~今天又從大師身上多學一招了!Thank  you~




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)