Excel VBA-创建新工作表的宏导致异常故障
我创建了一个宏,该宏用于向excel工作簿中添加(比如100个)新工作表。这些新工作表应该这样命名:Excel VBA-创建新工作表的宏导致异常故障,vba,excel,Vba,Excel,我创建了一个宏,该宏用于向excel工作簿中添加(比如100个)新工作表。这些新工作表应该这样命名: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 当我运行这段代码时,开始一切都正常-它添加了如上
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.9999999
,6.0999999
,7.299999
等等。
有人能解释为什么会发生这种情况吗?之所以会发生这种情况,是因为在浮点数学中使用了for next循环,而分数无法精确表示 这里的解释,为什么会发生这种情况。下面是更正代码的方法
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
那么
有人能解释为什么会这样吗?
感谢路易斯·西奎特和彼得·L.的帮助