我创建了一个宏,应该将新工作表添加(比方说100)到我的excel工作簿。这些新工作表的名称应如下所示:1%
,1.1%
,1.2%
,1.3%
,...,9.9%
,10%
Sub AddWorkSheets()
Dim i As Double
For i = 0 To 10 Step 0.1
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = i & "%"
Next i
End Sub
当我运行此代码时,一切工作正常 - 它添加了如上所述命名的新工作表。
但它只适用于工作表5.9%
。在该工作表之后,所有其他人都会获得5.99999999
,6.09999999
,7.2999999
等名称。
有没有人解释为什么会这样?
答案 0 :(得分:6)
这是因为您正在使用具有浮点数学的for-next循环,其中无法准确表示小数。
这里有关于SO的Tons解释,为什么会发生这种情况。下面是一种纠正代码的方法。Sub AddWorkSheets()
Dim i As Double
For i = 0 To 100 Step 1
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = round(i/10,1) & "%"
Next i
End Sub