Board logo

標題: 使用VBA 把Access匯入到Excel 為何數字會改變? [打印本頁]

作者: 許瑞祥    時間: 2014-8-28 22:26     標題: 使用VBA 把Access匯入到Excel 為何數字會改變?

我在Excel有寫VBA    執行的話 可以把Access裡面的股票資料匯入到Excel
但是為什麼我Access的數字匯到Excel後    數字會多出很多小數點出來呢?
ex: 在Access裡面 開盤價是51.60   匯入到Excel後 開盤價卻會變成51.599998474121(打開Excel看B2儲存格)
請問大大   為什麼會發生這問題?    請大大幫我解答

附件-
[attach]19043[/attach]
作者: luhpro    時間: 2014-8-28 23:39

回復 1# 許瑞祥
看起來應該是計算誤差,
我覺得它是用浮點小數作為計算過程中的載體,
所以會出現此情形.
你可以試試讀取資料後加段程式碼(例如透過 Format 函數,或是直接用Round(a*100)/100計算式)做修正.
作者: 許瑞祥    時間: 2014-8-31 15:45

回復 2# luhpro


    可以請大大做個範例嗎!?
我不知道該怎樣把Format函數寫在程式裡面
謝謝大大
作者: luhpro    時間: 2014-8-31 22:57

回復 3# 許瑞祥
  1. Sub nn()
  2.   Dim lRow&, iCol%
  3.   lRow = 2
  4.   With Worksheets("下載的股票資料")
  5.     Do While .Cells(lRow, 2) <> ""
  6.       For iCol = 2 To 5
  7.         With .Cells(lRow, iCol)
  8.           .Value = Format(.Value, "0.00")
  9.         End With
  10.       Next
  11.       lRow = lRow + 1
  12.     Loop
  13.   End With
  14. End Sub
複製代碼





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