作者liquidbox (树枝摆摆)
看板Office
标题[文件] 判断表格中文字是否为数值
时间Thu Nov 8 21:22:26 2018
软体: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].,-)其中的吗?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 36.227.163.176
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1541683348.A.2BF.html
※ 编辑: liquidbox (36.227.163.176), 11/08/2018 21:23:21
1F:→ soyoso: 回圈内 a=cell.range.text 11/08 23:45
2F:→ soyoso: isnumeric(left(a,len(a)-1)) 测试可判断1234、1,000、 11/08 23:46
3F:→ soyoso: 10.34、2,456.78可判断为数值 11/08 23:48
4F:→ liquidbox: 已成功,原来是因为最後有特殊字元,非常谢谢 11/09 08:33