Board logo

標題: 請問如何清除字串前面的"0" [打印本頁]

作者: enoch    時間: 2014-2-25 16:38     標題: 請問如何清除字串前面的"0"

想清除字串中最左手邊的0
0字長度不定,及字串中間的0要保留

00012A13B  >> 12A13B
00A14014B >> A14014B

請指教
作者: huijuang    時間: 2014-2-26 08:51

我想到的方法是使用VBA Function

做法是先在VBA模組中新增一個function(如下)
  1. Function DIn0(x As String) As String
  2. xindex = Len(x)
  3. Do
  4. If Left(x, 1) = 0 Then
  5. x = Right(x, xindex - 1)
  6. xindex = xindex - 1
  7. End If
  8. Loop Until Left(x, 1) <> "0"
  9. DIn0 = x
  10. End Function
複製代碼
接著在儲存格keyin
=DIn0(A1)
就行了

我做好的檔案如下
https://onedrive.live.com/redir?resid=6CB845AED0C935E7%21175
作者: newlink    時間: 2014-2-26 16:44

殺雞用牛刀了,
EXCEL本身就有這個功能
選取要更改的格→資料→資料剖析→分格符號→勾選其它,打入0→勾選連續分格符號視為單一處理→下一步。完成
作者: huijuang    時間: 2014-2-27 10:13

感謝newlink
之前我完全沒想過使用「資料剖析→分格符號」

因為使用function是有缺點的
它最大的缺點就是容易造成excel變慢
所以平常我也是儘量少用function
作者: aer    時間: 2014-2-27 10:59

回復 3# newlink

使用此法會將中間部分的0也刪除,例1# 樓主舉的例子:00A14014B,結果:A1414B,會有此問題產生
作者: Hsieh    時間: 2014-2-27 11:10

回復 1# enoch
陣列公式
=MID(A1,MATCH(TRUE,MID(A1,ROW(INDIRECT("A1:A"&LEN(A1))),1)<>"0",0),LEN(A1))




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