2014-08-29 107 views
0

這是關於另一篇文章的問題。如何在計算中包含小數

我寫了一個代碼執行以下操作:

這將需要數x,然後找到在數據集是14,28,42,56開等每個數字。 我使用下面顯示的原始代碼的問題是,它沒有考慮到相隔13.99或13.55的那些值。不知道如何添加標準來解決這個問題。我的代碼適用於整數,但不適用於小數:

Sub GetPairs() 
    Dim x, z As Single 
    Dim lastRow, pasterow As Single 
    Dim testMass, nomMass As Single 
    Dim lastValue As Long 
    Dim colCounter As Long 
    Dim lookUpRange As Range 
    lastRow = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Row 
    lastValue = Worksheets(1).Cells(Rows.Count, 2).End(xlUp).Value 
    Set lookUpRange = Worksheets(1).Range("B2:B" & lastRow) 
    pasterow = 2 
    For x = 2 To lastRow 
    nomMass = Cells(x, 2).Value 
    colCounter = 3 
    For z = Round((nomMass + 14), 0) To Round((lastValue + 14), 0) Step 14 
     If Found(lookUpRange, z) Then 
      'found 
      Worksheets(1).Cells(x, colCounter) = z 
      colCounter = colCounter + 1 
     End If 
    Next z 
    Next x 
End Sub 
+0

是否有可能獲得加強功能來加強btw(13.5-14)?升壓功能是否必須設置爲整數? – 2014-08-29 17:06:05

回答

0

使用內置的Round()函數。它有兩個參數:要舍入的數字(或單元格或變量)以及精確度。

要將13.55或13.99舍入爲14,請使用零的精度。因此,如果您將單元格F23中的值四捨五入,則會看起來像:= Round(F23,0)

Olivia,回答您對步數值的問題:是的,您可以使用不是整數的值例如:步驟.1是好的)在你的For循環中,但我很確定你不能使用範圍(例如:步驟.1到.5不允許)。

+0

謝謝安東尼,但我想要在最終結果中包含小數值。現在我的代碼讀取我排除所有不是14的完美倍數的值。 – 2014-08-30 17:33:33

相關問題