[文件] 判斷表格中文字是否為數值

作者: liquidbox (樹枝擺擺)   2018-11-08 21:22:26
軟體:Word
版本:2016
我想逐一判斷word表格中的每一儲存格的文字是否為數值,
若是則調整格式,使表格中的文字儲存格及數值儲存格有不同的設定
先前學的方法是使用isNumeric,如:
with activedocument.tables(1)
for each cell in .range.cells
If IsNumeric(cell.Range.Characters.Item(1).Text) Then
' 格式
End If
next
end with
但這個方法只根據第一個文字是否為數值來決定,精確度不高
我想改成抓取儲存格整個文字,若能利用CLng、CDbl等成功轉換成數值就表示是數值,
但以下寫法卻出現「型態不符合」的錯誤訊息
Dim a As String
Dim b As Long
a = ActiveDocument.Tables(1).Cell(1, 1).Range.Text ' 該格文字是123
b = CLng(a) ' 此列呈現黃底,顯示「型態不符合」
我查了CLng或其他型態轉換函數的用法,都看不出哪裡出問題,在此求教,謝謝
另外,想請問,如果我改良第一種方法,以陣列的方法來判斷,
有什麼函數可以逐一比對某字串的每個字母是否都包含於([0-9].,-)其中的嗎?
謝謝
作者: soyoso (我是耀宗)   2018-11-08 23:45:00
迴圈內 a=cell.range.textisnumeric(left(a,len(a)-1)) 測試可判斷1234、1,000、10.34、2,456.78可判斷為數值
作者: liquidbox (樹枝擺擺)   2018-11-09 08:33:00
已成功,原來是因為最後有特殊字元,非常謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com