Excel里获取到得0.0016为何是.0016
'excel中存的格式是0.0016,读取时是.0016,这样我和ActualValue比较就会不一致了'如何把ExpectValue转换成小数格式比较,我用CCur(expression)转换总说类型不对
'expectValue是从打开Excel中取值
'ActualValue是从我的测试对象中取值
ExpectValue = appSheet.cells(i,j).value
ActualValue = TableObj.GetCellData(i-2,j-1) 导入到DataTable是正常的,可以验证成功 楼主既然用CCur(无法转换成功,
那么就转换成clng()看看 刚刚试了。
clng() 返回的是0
关注! 呵,那你可以多试几个转换的函数,总有一个适合的
如cdbl 转换为双精度
csng转换为单精度
cstr转换字符 获取的时候默认是string类型吧?string好转换为数值型的吗,cdbl等试了,总是类型不对
是不是cdbl、ccur等必须是数值类型才能转换?
[ 本帖最后由 kavensyw 于 2010-9-4 13:03 编辑 ] 我从DataTable中取0.0016的值时,就是取到的0.0016,你的怎么取到的是.0016呢,费解 用DataTable导入是0.0016;
用Excel对象打开读取是.0016,大致方法如下:
Set app = CreateObject("Excel.Application")
Set appBook = app.Workbooks.Open("H:\SKU.xls")
Set appSheet = appBook.Worksheets(4)
For i=3 To 102
For j=1 To 8
ExpectValue = appSheet.cells(i,j).value
ActualValue = TableObj.GetCellData(i-3,j-1)
If Trim(ActualValue)<>Trim(ExpectValue) Then
reporter.ReportEvent micFail,"SKU排名报告不正确","ExpectValue--"&ExpectValue&vbCrLf&"ActualValue--"&ActualValue
End If
Next
Next
appBook.Close
Set appBook = Nothing
Set app = Nothing 再看看excel单元格属性,把它设置为“文本”的 我感觉和vbs设置无关,应该和vbs的方法有关,可能cells读出来的值就会这样.
不过这可以判断一下,然后加个前导的0。
就是感觉怪怪的,不知道有没有什么方法可以直接正确的读
Set app = CreateObject("Excel.Application")
Set appBook = app.Workbooks.Open("G:\sku.xls")
Set appSheet = appBook.Worksheets(1)
ExpectValue = appSheet.range("A2").value
msgbox ExpectValue '不输出小数点前的0
If expectvalue<1.0 and expectvalue>0.0 Then
msgbox "0"&ExpectValue '输出小数点前的0
End If
appBook.Close
Set appBook = Nothing
Set app = Nothing Cstr("单元格的值")
你试一下这个呢,把2个都转换成字符来比较吧!
页:
[1]