作者icene (kkk)
看板Visual_Basic
標題Re: [VBA ] 請問一個變數宣告的問題
時間Mon Mar 5 23:32:12 2007
我不知道什麼原因ㄟ,不過我覺得跑迴圈 step最好是整數比較好,所以
這樣改就會跑到4了,你的變數還是可以設Double
但是我建議是以後迴圈的i還是社Integer or Long比較好
For i = Cint(i1*100) To Cint(i2*100) Step Cint(i3*100)
: For j = Cint(j1*100) To Cint(j2*100) Step Cint(j3*100)
: For k = Cint(k1*100) To Cint(k2*100) Step Cint(k3*100)
: Worksheets("sheet1").Cells(1, 1).Value = i/100
: Worksheets("sheet1").Cells(1, 2).Value = j/100
: Worksheets("sheet1").Cells(1, 3).Value = k/100
: Next k
: Next j
: Next i
※ 引述《LaDSi (jeffsb)》之銘言:
: ↓以下是新手小弟寫的小程式↓
: --------------------------------
: Sub test()
: Dim i As Double, j As Double, k As Double
: Dim i1 As Double, i2 As Double, i3 As Double, j1 As Double, j2 As Double,
: j3 As Double, k1 As Double, k2 As Double, k3 As Double
: Worksheets("sheet1").Activate
: i1 = 3
: i2 = 4
: i3 = 0.02
: j1 = 8
: j2 = 9
: j3 = 0.5
: k1 = 1.5
: k2 = 3
: k3 = 0.5
: For i = i1 To i2 Step i3
: For j = j1 To j2 Step j3
: For k = k1 To k2 Step k3
: Worksheets("sheet1").Cells(1, 1).Value = i
: Worksheets("sheet1").Cells(1, 2).Value = j
: Worksheets("sheet1").Cells(1, 3).Value = k
: Next k
: Next j
: Next i
: End Sub
: --------------------------------
: 我的問題是,我跑出來的結果一直卡在儲存格A1的值竟然是3.98而不是4?
: 所以請問各位先進這個問題是錯在哪?並請問該怎麼改呢?
: 此外,變數宣告我也曾經用過"single"可是儲存格A1的值更怪變成了3.99999
: 請問這是什麼原因呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.216.102.180
※ 編輯: icene 來自: 61.216.102.180 (03/05 23:36)
推 LaDSi:感謝您的回答~後來我用"currency"宣告,就可以跑出來了^^" 03/08 00:05
→ LaDSi:我也不知道為什麼可以跑出來..但跑出來的格式會多出一個"$" 03/08 00:07